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 weiss dann wo die Nutzdaten enden.
Deine Idee mit Sleep() bitte ganz weit auf den Müll werfen.