Entwickler-Ecke

Internet / Netzwerk - stream via indy versenden, jedoch wird resultat leer..?!


Niels_ - Fr 21.10.05 22:46
Titel: stream via indy versenden, jedoch wird resultat leer..?!
Hallo, titel sagt ja eigentlich alles.
Sobald gesendet wird, kommt ein leerer stream (in form einer Datei) an, ka. warum.
Hier der quellcode, könnte mir jemand sagen, wo der Fehler liegt?
Danke im vorraus


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
procedure Tform1.senden(IP,pfad,datname:string);
var
St: TfileStream;
begin
  idTCPclient1.host:=ip;
  idtcpclient1.boundPort:=1248;
  St := TfileStream.Create(pfad+datname,fmOpenRead);
  St.Seek(0, soFromBeginning);
  IdTCPClient1.Connect;
  try
    IdTCPClient1.WriteStream(St, True, true);
  finally
    IdTCPClient1.Disconnect;
  end;
  St.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  senden('localhost',edit1.text,edit2.text);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  idTCPserver1.DefaultPort:=1234;
  idTCPserver1.Active:=true;
end;

procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
I: Integer;
St: TfileStream;
begin
St := TfileStream.Create('c:\test.ttt',fmCreate);
try
   with AThread.Connection do begin
     I := ReadInteger;
     ReadStream(St, I);
   end;
finally
   St.Free;
end;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  idTCPserver1.Active:=false;
end;


Dachte irgendwie, dass

Delphi-Quelltext
1:
St.Seek(0, soFromBeginning);                    

helfen würde, aber weiß nicht genau wo, und eigentlich auch nicht warum ^^


Manfred - Do 03.11.05 00:28

Hi!
In Zeile 37 liest Du ein I aus. Was wird denn dort für ein Wert ermittelt? Vielleicht 0?