Einzelnen Beitrag anzeigen

Benutzerbild von Ralf Kaiser
Ralf Kaiser

Registriert seit: 21. Mär 2005
Ort: Wuppertal
932 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Daten werden nicht komplett gesendet (TCP-Socket flushen?)

  Alt 8. Jul 2011, 13:29
Das Problem ist, dass du wahrscheinlich kein Protokoll auf Anwendungsebene verwendest.
Mit dem Protokoll musst du dem Epmfänger sigalisieren, wo das Datenpaket anfängt und wo es endet.
Ein einfaches Protokoll sieht so aus:
Code:
Nutzdaten CR+LF
Der Empfänger liest einfach so lange, bis er das CR+LF im Datenstrom erkannt hat und weiß dann wo die Nutzdaten enden
Na ja, ein "Protokoll" gibt es schon. Die Daten müssen nämlich eine gewisse Länge haben (die wird festgelegt, ich glaube das könnte man "Protokoll" nennen...). Das Sendeprogramm schickt auch genau diese Anzahl, das Leseprogramm holt genau diese Anzahl nur kommt eben nichts an wenn die Sendeklasse direkt freigegeben wird (und das wird wohl öfter der Fall sein).

Mit dem CRLF habe ich ausprobiert - ohne Erfolg (war wäre denn wenn CRLF in den Daten vorkommt?? - Darum wird ja die Länge festgelegt!)

Deine Idee mit Sleep() bitte ganz weit auf den Müll werfen.
Das war auch nur zu Testzwecken. Mir war aufgefallen, dass die Daten immer ankamen wenn irgendetwas eine Verzögerung verursachte (z.B. ein Breakpoint in der IDE)
Ralf Kaiser
  Mit Zitat antworten Zitat