Einzelnen Beitrag anzeigen

Dummbatz

Registriert seit: 11. Mär 2003
Ort: Wehr
14 Beiträge
 
Delphi 6 Enterprise
 
#1

Indy10, Probleme beim Versenden von Streams

  Alt 3. Mai 2006, 10:55
Hallo zusammen!

Ich benutze in meinem Client/Server-Projekt TIdTCPClient und TIdTCPServer, um Daten hin- und herzuschicken.

Folgendes funktioniert dabei wunderbar:
Client:
Delphi-Quellcode:
FTCPClient.IOHandler.Write(locSendStream);
locResponse := FTCPClient.IOHandler.ReadLn;
Server:
Delphi-Quellcode:
procedure TCPServerExecute(AContext: TIdContext);
[...]
AContext.Connection.IOHandler.ReadStream(locReceiveStream, AContext.Connection.IOHandler.InputBuffer.Size);
AContext.Connection.IOHandler.WriteLn('Welcome!');
Versuche ich aber als Antwort einen Stream zu versenden...
Client:
Delphi-Quellcode:
FTCPClient.IOHandler.Write(locSendStream);
FTCPClient.IOHandler.ReadStream(locReceiveStream, FTCPClient.IOHandler.InputBuffer.Size);
Server:
Delphi-Quellcode:
procedure TCPServerExecute(AContext: TIdContext);
[...]
AContext.Connection.IOHandler.ReadStream(locReceiveStream, AContext.Connection.IOHandler.InputBuffer.Size);
[...] //Verarbeite Stream, erstelle Antwort
  AContext.Connection.IOHandler.Write(locSendStream);
...dann wird im Client ReadStream() bereits ausgeführt obwohl der Server noch nicht gesendet hat.
Sprich: Lese ich einen String wird gewartet, lese ich einen Stream nicht!

Was mache ich falsch? Hat jemand eine Idee?

MfG Dummbatz.
Thomas
  Mit Zitat antworten Zitat