BYTE nach WORD
-
Hallo zusammen,
ich würde gerne aus einer Nachricht, die ich per Socket empfange, ein WORD exportieren.
BYTE 3 und 4 enthält die Daten. Was kann man da machen ??
Gruß dhoe
-
Meinst du BYTE oder Bit ?
Du brauchst die Operatoren zur Bitmanipulation.
-
Der String sieht so aus... 0x00 0x00 0x00 0x99 .....
Wobei hier Byte 3 und 4 die Länge der Nachricht angibt.
-
Einfach den Pointer auf Byte 3 in einen WORD Pointer casten - oder eben die Bytes in ein WORD hineinkopieren...

-
Naja, das kommt darauf an ob die beiden BYTEs des WORD in "big endian" oder "little endian" übertragen werden, also ob das BYTE mit dem höheren Wert zuerst oder zuletzt kommt.
http://www.webopedia.com/TERM/b/big_endian.html
Der Standard für Internet Protokolle ist "big endian", x86 (8086 ... 486, Pentium, Core 2 Duo etc.) verwenden "little endian". Wenn du "big endian" reinbekommst kannst du z.B. einfach folgendes machen:
WORD length = dataBytes[2] * 256 + dataBytes[3];Alternativ kannst du "ntohs" ("network to host short") verwenden.
Und wenn du "little endian" reinbekommst (was ungewöhnlich wäre):
WORD length = dataBytes[3] * 256 + dataBytes[2];