Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: TServerThread.ClientExecute; Buffer Problem

  Alt 5. Okt 2011, 00:30
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
Code:
[Länge][.....Daten.....]
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.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat