C Pointerei
bearbeitet von plOk, ich formuliere das Poblem mal anders:
Was nützt ein Datentyp dessen Endiannes systemabhängig ist? Gar nichts!
Genausowenig nützt dann solch ein struct:
~~~c
typedef struct{
uint16_t id;
uint16_t flags;
usw...
}DNSHeader;
~~~
weil die Byteorder der Members systemabhängig sind.
> Nein! Lies bitte noch einmal meinen Post und den Link auf die Manpage. ntohs stellt sicher, dass immer in die korrekte Host Byte Order konvertiert wird und htons immer korrekt in die Netzwerk Byte Order. Immer!
So!?
~~~c
printf("%#x", htons(53) ); // 0x3500
~~~
Rauskommen muss aber `0x0035` !
MfG