![]() |
idTCPServer unterschiede erkennen
Hi,
ich empfange und versende Dateien mit den Indy TCP Komponenten (Server & Client). Aber zusätzlich werden noch Texte verschickt. Wie kann ich nun einen Text (SendLN) von dem Empfang einer Datei unterscheiden? So empfange ich bis jetzt die Dateien:
Delphi-Quellcode:
thx hibbert
procedure TForm1.IdTCPServer1Execute(AContext: TIdContext);
var fs: TFileStream; stream: TIdStreamVCL; SizeOfIncomingStream: integer; begin fs := TFileStream.Create(extractfilepath(application.ExeName)+'tmp\file.tmp', fmCreate or fmShareExclusive); stream := TIdStreamVCL.Create(fs); with AContext.Connection do try SizeOfIncomingStream := IOHandler.ReadInteger; //Größe des Streams empfangen IOHandler.ReadStream(stream, SizeOfIncomingStream); //und übergeben finally Disconnect; fs.Free; end; end; |
Re: idTCPServer unterschiede erkennen
*push* :oops:
|
Re: idTCPServer unterschiede erkennen
Du musst ein Protokoll erfinden und benützen.
Schau dir mal das SMTP Protokoll an. ![]() Der Client sagt dem Server mit kurzen Wörtern, was er will und der Server antwortet mit einem Statuscode. Wenn der Client eine Datei an den Server übertragen will, dann schickt er nicht einfach die Nutzdaten, sondern:
Code:
Im Beispiel oben steht xxxxxxxx für die Länge der Nutzdaten in Bytes (am besten hex codiert).
FILE xxxxxxxx [nutzdaten]
|
Re: idTCPServer unterschiede erkennen
hi,
so was ähnliches habe ich auch schon, nur die praktische Umsetzung in Delphi fehlt mir da noch ein wenig... Wie versende ich zb. vor dem Dateistream den "Befehl" dass eine Datei mit dem Namen XYZ gesendet wird? Und wie filter ich das wieder raus, das wäre nun mein akt. Problem. hibbert |
Re: idTCPServer unterschiede erkennen
Hi,
nochmal die Frage: Wie setzte ich Quelltextmäßig den dateinamen vor den Stream und wie lese ich diesen wieder aus? hibbert |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:07 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