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:
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)