danke erst mal für die antwort, schön zu sehen, dass es leute gibt die früh morgens antworten
nehmen wir das beispiel, welches ich im letzten post behandelt habe:
http://mc.kev009.com/Protocol#Handshake_.280x02.29
Weiter oben steht die Definition der "Packets"
Code:
All packets begin with a single "Packet ID" byte. Listed packet size includes this byte. Packets are either "server to client", "client to server", or both. If not specified, assume that the packet can be sent both ways. There is no "length" field; for variable length packets, you must parse to the end to determine the length.
Die Länge des Packets, welches geschickt wird:
Code:
Total Size: 3 bytes + length of strings
soll (glaube ich mal) heißen, dass ich min. 3 bytes zugeschickt bekomme (spekuliere auf benutzername min. 1 zeichen):
1. byte: packet id
2. byte: länge der zeichenkette (länge des benutzernamens)
3. byte: das zeichen selbst
habe ich zB den Namen DArc, empfange ich folgendes (3 Bytes + 3 weitere):
1. byte: packet id = 0x02 => 2
2. byte: länge meines namens = 4
3. byte: das zeichen "D" im
ASCII Code
4. byte: das zeichen "A"
5. "r"
6. "c"
zum hinweis auf nicht vorhandene deklaration, ich hab doch in meinem Record folgendes:
Delphi-Quellcode:
TMyPacket = packed record
id: Byte;
length: Byte;
username: array[0..15] of AnsiChar; // bzw. of Byte
end;
€dit: wenn ich etwas auf der Protocol Dokumentationsseite falsch entnommen, interpretiert oder überlesen habe, so
bitte ich um verständnis und um korrektur