Entwickler-Ecke
Internet / Netzwerk - Dateien senden mit IdTCP Client / Server
DBZfan - Sa 31.05.03 09:50
Titel: Dateien senden mit IdTCP Client / Server
Hallo,
ich benutze den TCP Server / Client von Indy, um eine Datei zu senden. Die Datei wird vom Server zum Client per Stream übermittelt. Das Problem ist das der Client "einfriert" in der Zeit, wo die Datei übermittelt wird. Dieses darf aber nicht sein, weil das Prog später sehr viele Dateien übermitteln soll. Was kann man da machen, oder was mach ich falsch?
Quellcode vom Client:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| procedure TForm1.Button1Click(Sender: TObject); var FStream: TFileStream; begin FStream := TFileStream.Create('C:\test.zip', fmCreate); with Form1 do begin IdTCPClient1.Connect; try IdTCPClient1.ReadStream(FStream, -1, True); FStream.Seek(0, soFromBeginning); finally IdTCPClient1.Disconnect; FStream.Free; end; end; end; |
Quellcode vom Server:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread); var FStream: TFileStream; begin FStream := TFileStream.Create('C:\test.dat', fmOpenRead); try AThread.Connection.OpenWriteBuffer; AThread.Connection.WriteStream(FStream); AThread.Connection.CloseWriteBuffer; finally AThread.Connection.Disconnect; FStream.Free; end; end; |
maxk - Sa 31.05.03 10:42
Ich mach er immer mit Strings (ich weiß, dass das sehr unsauber ist):
Daten in String lesen - String in Stream schreiben, wenn keine Daten -> Application.ProcessMessages;[/delphi]
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!