Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

Re: Client - Server [Datentrennung]

  Alt 26. Mär 2008, 19:40
Das Wichtigeste ist korrekte Differenzierung erstmal beim Server unter den Clients. Ich mache es immer so, dass ich einen Record im Data Feld jedes Sockets speichere in dem ich dann getrennte Buffer und sowas ablege.
Der zweite Punkt ist, dass du darauf achten musst, dass lange Befehle auch als ein einzelnes Stück ankommen, bzw schnell aufeinander gesendete kurze Befehle wirklich getrennt ankommen. Dafür empfiehlt es sich eine Art Software Buffer zu programmieren. Bevor ein Befehl gesendet wird, schickst du erstmal die Länge des Befehls als Cardinal vorweg. Der Empfänger hat einmal einen Pointer oder ein Array als Buffer und eine Cardinal Variable in der dann die Länge des Befehls steht. Er prüft dann, ob die Länge = 0 ist. Wenn ja nimmt er die ersten 4 Bytes der ankommenden Daten als Länge und fügt weitere Daten so lange dem Buffer hinzu, bis die Länge erreicht ist.
  Mit Zitat antworten Zitat