Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi idTCPServer unterschiede erkennen (https://www.delphipraxis.net/69377-idtcpserver-unterschiede-erkennen.html)

hibbert 14. Mai 2006 16:08


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:
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;
thx hibbert

hibbert 16. Mai 2006 16:24

Re: idTCPServer unterschiede erkennen
 
*push* :oops:

shmia 16. Mai 2006 18:09

Re: idTCPServer unterschiede erkennen
 
Du musst ein Protokoll erfinden und benützen.
Schau dir mal das SMTP Protokoll an.
http://de.wikipedia.org/wiki/SMTP
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:
FILE xxxxxxxx [nutzdaten]
Im Beispiel oben steht xxxxxxxx für die Länge der Nutzdaten in Bytes (am besten hex codiert).

hibbert 16. Mai 2006 18:18

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

hibbert 19. Mai 2006 16:11

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