Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#4

AW: Indy TCP Server - Record versenden ?!

  Alt 7. Feb 2012, 08:54
...wie ich ein Record mit der Indy TCP Server Komponente versenden kann
Das Problem ist schwieriger als es auf den 1. Blick aussieht.
Da lohnt es sich, über den Tellerrand zu schauen und zu kucken wie andere das machen.

Zunächst mal haben deine Records/Befehle potentiell eine unterschiedliche Länge und man muss besondere Maßnahmen treffen um das Ende der Record zu erkennen.
Viele Internetprotokolle wie z.B. SMTP, POP3, FTP sind so aufgebaut, dass man einen Befehl der mit CRLF abgeschlossen schickt und der Server mit einem OK oder einer Fehlernummer antwortet.
Die Protokolle sind für einen Menschen lesbar und man kann sie mit Telnet simulieren, was besonders zum Debuggen nützlich ist.
Das Ende eines Befehls oder einer Antwort lässt sich also immer am CRLF erkennen.

Deine Records/Befehle könnten also so übertragen werden:
Code:
COMMAND,Param1,Param2,Param3,...<CRLF>
Hier einige Beispiele, damit man sich das besser vorstellen kann:
Code:
LOGON,user7,geheim<CRLF>
GETSTATUS<CRLF>
STARTEXE,C:\Windows\notepad.exe,C:\Windows,0<CRLF>
SHOWMSG,Das ist die Caption,'mit einem Text, der ein Komma enthält'<CRLF>
SLEEP,5000<CRLF>
Parameter die ein Komma enthalten müssen in Hochkomma eingeschlossen werden.
  Mit Zitat antworten Zitat