Entwickler-Ecke

Internet / Netzwerk - Indy Server/Client Senden und Empfangen von Streams


patmann2001 - Di 13.02.07 08:50
Titel: Indy Server/Client Senden und Empfangen von Streams
Guten Morgen ihr lieben.

Zuerst mal mein Source


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:
Function GetInfo(VAR Info:TMemoryStream;ahost:STRING;aport:Integer):Boolean;
 Begin
  Result := false;
  Client.Host := ahost;
  Client.Port := aport;
  Try
  Client.Connect;
  Finally
  If Client.Connected then
   Begin
    Info.Seek(0, soFromBeginning);        
    Try
     Client.OpenWriteBuffer;
     Client.WriteStream(Info,true,true);
     Client.CloseWriteBuffer;
    Except
     Client.CancelWriteBuffer;
     Client.Disconnect;
     Raise;
    End;
  End;
//  Client.Disconnect;
  If Client.Connected then
    Begin
     Info.Seek(0, soFromBeginning);
     Client.ReadStream(Info,-1,true);     
     Client.Disconnect;
    End;
  End;
  Result:=true;
 End;

So folgendes Problem:
Wenn ich diese Function aufrufe, dann bleibt sie in Zeile 26:
Zitat:
Client.ReadStream(Info,-1,true);
hängen. Es werden auch keine Daten zum Server übertragen. Wenn ich jedoch die Zeile 22:
Zitat:
// Client.Disconnect;
wieder aktiviere und den Rest der Function ausschalte, dann klappt das Senden. Natürlich meldet dann der Server einen Error, weil er nicht antworten kann.
Woran kann das liegen?

Danke für eure Hilfe

Patmann