Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#2

AW: Indy 10 TCP-Client Strings Lesen

  Alt 12. Nov 2010, 06:25
Man bekommt das überhaupt nicht heraus.

TCP hat kein 'habe Fertig', d.h. die Gegenstelle kippt ihre Nachrichten einfach in den Socket und die purzeln dann auf der anderen Seite wieder heraus. Woher willst Du denn wissen, wann die andere Seite fertig ist, wenn nicht über eine 'Abmachung', oder eben das 'Protokoll'.

Das Protokoll, also die Regeln, welche Fragen gestellt und welche Antworten in welcher Form gesendet werden, legen fest, wie und auch wie viele Daten übertragen werden.

I.A. definiert das Übertragunsprotokoll eine Art Rahmen, innerhalb dessen die Daten gesendet werden, z.B. STX <Daten> ETX , wobei STX und ETX besondere Zeichen sind. (STX) wird manchmal weggelassen.

Eine andere Möglichkeit wäre <Länge> <Daten>. Es wird also zunächst die Anzahl der zu übertragenen Daten gesendet, und danach die Daten selbst.

Bei beiden Verfahren weiss die Gegenstelle, wann Schluss ist.

Hier werden einfach nur Zeichenketten, durch CR LF getrennt, verschickt. Auch ok. Du musst dann eben pro Frage genau wissen, wie viele Zeilen/Zeichen als Rückantwort gesendet werden.

Definier dir pro Frage eine Klasse und überlasse dann der konkreten Klasse das Einlesen der Antwort.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat