![]() |
Datei über TCP senden (Indy)
Um eine Datei über die TCP-Komponenten (TIdTCPClient und TIdTCPServer) von Indy zu versenden, geht man wie folgt vor:
Delphi-Quellcode:
Das wärs schon.
procedure TForm1.Button1Click(Sender: TObject);
var fs: TFileStream; begin if not OpenDialog1.Execute then exit; //erstmal besorgt man sich den Pfad der Datei, z.B. mit dem Standard Dialog TOpenDialog with IdTCPClient1 do begin fs := TFileStream.Create(OpenDialog1.FileName, fmOpenRead or fmShareDenyWrite); //Datei in FileStream einlesen Connect; //und Verbindung herstellen try OpenWriteBuffer; //stellt sicher, dass alle Daten versendet werden try WriteStream(fs, true, true, 0); {das 2. true ist wichtig!, da es bewirkt, dass die Größe des Streams mittels WriteInteger zuerst verschickt wird} CloseWriteBuffer; except CancelWriteBuffer; raise; end; finally Disconnect; fs.Free; end; end; end; procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread); var fs: TFileStream; SizeOfIncomingStream: integer; begin if not SaveDialog1.Execute then exit; fs := TFileStream.Create(SaveDialog1.Filename, fmCreate or fmShareExclusive); with AThread.Connection do try SizeOfIncomingStream := ReadInteger; //Größe des Streams empfangen ReadStream(fs, SizeOfIncomingStream); //und übergeben finally Disconnect; fs.Free; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz