Entwickler-Ecke
Internet / Netzwerk - Datei versenden (Indy10) - Dateiname
hibbert - Mo 08.05.06 18:52
Titel: Datei versenden (Indy10) - Dateiname
Hi,
ich habe ein Programm geschrieben, welches einige Dateien verschickt. Es handelt sich aber immer um verschiedene Dateitypen. Nun muss ich beim Empfangen ja den Dateinamen angeben. Kann ich den Dateinamen evtl beim Empfangen mit auslesen?
So versende ich:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
| procedure tform1.dateiSenden(filename:string); var fs:tfilestream; stream:TIdStreamVCL; begin with IdTCPClient1 do begin host:=serverip; fs := TFileStream.Create(filename, fmOpenRead or fmShareDenyWrite); stream := TIdStreamVCL.Create(fs,true); Connect; try IOHandler.WriteBufferOpen; try IOHandler.Write(stream, 0, true); IOHandler.WriteBufferClose; except IOHandler.WriteBufferCancel; raise; end; finally Disconnect; fs.Free; end; end; end; |
und so empfange ich:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure TForm1.IdTCPServer1Execute(AContext: TIdContext); var fs: TFileStream; stream: TIdStreamVCL; SizeOfIncomingStream: integer; begin fs := TFileStream.Create('datei.endung', fmCreate or fmShareExclusive); stream := TIdStreamVCL.Create(fs); with AContext.Connection do try SizeOfIncomingStream := IOHandler.ReadInteger; IOHandler.ReadStream(stream, SizeOfIncomingStream); finally Disconnect; fs.Free; end; end; |
thx hibbert
Narses - Mo 08.05.06 20:12
Moin!
Schau dir mal TStringStream an, ist zwar etwas oversized, der Ansatz, aber damit kannste das dann auf die gleiche Art lösen: Einfach die String-Länge als Integer davor und dann den String als Stream. ;)
cu
Narses
hibbert - Mo 08.05.06 20:34
Hi,
ich habe jetzt diesen Ansatz:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| try IOHandler.WriteBufferOpen; try IOHandler.write('test.txt',8,true); IOHandler.Write(stream, 0, true); IOHandler.WriteBufferClose; except |
In Zeile 4 hoffe ich, dass ich den Dateinamen übermittel und danach die Datei.
Nur wie bekomme ich die Daten beim empfangen wieder auseinander?
hibbert
Narses - Mi 10.05.06 00:17
Moin!
Was du brauchst, nennt man
PROTOKOLL, mach dich mal ein bischen schlau darüber. ;)
cu
Narses
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 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!