Robert B.: C Pointerei

Beitrag lesen

Moin,

Wir reden aneinander vorbei.

vollkommen korrekt, das zeigt deine Antwort:

ntohs stellt sicher, dass der in Network Byte Order vorliegende uint16_t-Wert anschließend in der für deinen aktuellen Host korrekten Byte Order vorliegt.

Darum gehts doch gar nicht. Eine Netzwerkanwendung benötigt Zahlen in Networkorder (BE) und ob diese Endianness für den Host auf dem die Anwendung läuft zutrifft, ist völlig Wurst.

Soweit korrekt.

Sicher kann man einen int mit htons() oder htonl() in die Networkorder bringen aber auch nur wenn man sichergehen kann daß dieser int als LE vorliegt.

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!

Viele Grüße
Robert