Dateien senden und empfangen (Delphi6/Indy9)
Also ich habe jetzt schon die halbe Nacht im Internet gesucht und immernoch keine Lösung gefunden. Mein Problem ist das senden von Dateien zwischen TIdTCPClient und TIdTCPServer. Genauer gesagt eigentlich nur vom TIdTCPServer zum IdTCPClient. Andersrum gehts perfekt.
Ich verwende folgenden Code für das Senden vom Client zum Server (ein wenig vereinfacht und verändert): Der Client: --------------------------------------------------------------------
Delphi-Quellcode:
procedure TMain.btn_sendClick(Sender: TObject);
var fs: TFileStream; begin if OpenDialog.Execute then begin with IdTCPClient do begin fs := TFileStream.Create(OpenDialog1.FileName, fmOpenRead or fmShareDenyWrite); //Datei in FileStream einlesen 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; end; Der Server: --------------------------------------------------------------------
Delphi-Quellcode:
procedure TMain.IdTCPServerExecute(AThread: TIdPeerThread);
var fs: TFileStream; SizeOfIncomingStream: integer; begin if SaveDialog.Execute then begin fs := TFileStream.Create(SaveDialog.Filename, fmCreate or fmShareExclusive); with AThread.Connection do try SizeOfIncomingStream := ReadInteger; //Größe des Streams empfangen ReadStream(fs, SizeOfIncomingStream); //und übergeben finally fs.Free; end; end; end; So. Nun noch einmal zu meiner Frage: Wie kann ich umgedreht senden? Also nicht vom Client zum Server sondern vom Server zum Client? Schonmal THX im Vorraus! :wink: mfg. chri_ri |
Re: Dateien senden und empfangen (Delphi6/Indy9)
Also ich kenne mich leider nicht gut aus,
aber wie wäre es wenn du dazu einfach jedem Progammteil sowohl Server als auch Client beifügst?! Beim Empfangen nutzt das Programm den Clienten und wenn der Benutzer etwas senden will macht er das per servermode. Hat den Vorteil dass du nur ein Programm schreiben musst mit immer demselben Code. Hoffe das funkioniert so auch... mfg 64Jabor |
Re: Dateien senden und empfangen (Delphi6/Indy9)
Gibt es kein AThread.Connection.WriteStream?
Oder möchtest du das ganze später senden? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz