Einzelnen Beitrag anzeigen

Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#7

AW: TSocket - Online Spiel Kommunikation

  Alt 19. Mär 2012, 15:55
Lösungsvorschlag für das Problem mit Pakettrennung/erkennung:

Ein Paket (Datensatz) besteht aus 2 Komponenten:
<Größenangabe der Daten>
<Daten>

Man pusht nun auf den Queue Pakete in genau diesem Format drauf. Dieser wird abgearbeitet (byte für byte wenns sein muss, spielt auf dieser Ebene noch keine Rolle).
Beim Empfangen wird genau jenes auch getan.

Zwischendrin aber versucht der Empfänger rauszufinden, ob ein ganzes Paket schon angekommen ist, indem er zuerst einmal die ersten paar Bytes (Größenangabe der Daten) aus dem Empfangspuffer ausliest und zweitens sicherstellt, dass die Puffergröße >= Größe von <Größenangabe der Daten> + Größenangabe.
Falls die Bedingung zutrifft, so kann er ausgehen, dass ein Paket angekommen ist und poppt diese dann vom Empfangspuffer!

Edit: @Threadstarter
Ich helfe dir nur theoretisch. Ich werde dir keinen Code schreiben!
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG

Geändert von Aphton (19. Mär 2012 um 16:30 Uhr)
  Mit Zitat antworten Zitat