Wie soll der jeweilige Empfänger denn wissen, wie lang die Datenpakete sind - hellsehen kann der auch nicht.
Du musst also noch ein Protokoll drübersetzen.
minimal so was
besser wäre noch das hier
Code:
[Länge][.....Daten.....][Prüfsumme]
Hat der Server die Daten empfangen, schickt der dem Client eine Rückmeldung ob die Übertragung erfolgreich war.
Wenn nicht, muss der Client die Daten erneut senden.
Damit der Client weiß, was nicht korrekt angekommen ist, sollte im Protokoll evtl. auch eine Paket-ID enthalten sein.
Und damit man die Daten-Sendungen von den Bestätigungsmeldungen unterscheiden kann, auch einen Nachrichten-Typ
Code:
Client -> Server [Länge][..C-ID..][Typ][.....Daten.....][Prüfsumme]
Server -> Client [Länge][..S-ID..][Typ][..C-ID..]OK[Prüfsumme]
Weiterhin ist es nicht ratsam innerhalb eines Threads eine MessageBox mal eben so zu öffnen.
Dafür sollte man ein entsprechendes Logging implementieren.