Einzelnen Beitrag anzeigen

hugo1990

Registriert seit: 27. Dez 2006
166 Beiträge
 
Turbo Delphi für Win32
 
#1

Problem mit SendStream und ReceiveBuf bei großen Dateien

  Alt 27. Feb 2008, 21:36
Wenn ich folgendermaßen mit TClientSocket und TServerSocket Dateien versende:

Client:
Delphi-Quellcode:
procedure TFileClient.SendData;
begin
  FClient.Socket.SendStream(FileStream);
end;
Server:
Delphi-Quellcode:
procedure TFileServer.ReceiveData(Sender: TObject; Socket: TCustomWinSocket);
var
  Buffer: AnsiString;
  Size: Integer;
begin
  Size := Socket.ReceiveLength;
  SetLength(Buffer, Size);
  Socket.ReceiveBuf(Buffer[1], Size);
  FileStream.Write(Buffer[1], Size);
end;
bekomme ich die Meldung "Windows-Socket-Fehler: Eine vorhandene Verbindung wurde vom Remotehost geschlossen." Ich nehme mal an, das das so eine Art Timeout vom Server ist. Bin ich da richtig in der Annahme und wenn ja, wie kann man das ausschalten oder verlängern?
  Mit Zitat antworten Zitat