Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Byte-Reihenfolge umwandeln

&pagelevel(3)&pagelevel

Wenn Sie die zuvor beschriebenen Funktionen für die Adressumwandlung verwenden, müssen Sie in einem Internet-Anwenderprogramm Adressen selten direkt behandeln. Sie entwickeln dann Services weitgehend netzunabhängig. Ein Rest von Netzabhängigkeit bleibt jedoch bestehen, da in einem Anwenderprogramm die IP-Adresse angegeben werden muss, wenn einem Service bzw. einem Socket ein Name zugeordnet wird.

Neben den Bibliotheksfunktionen für die Umwandlung von Namen in Adressen gibt es auch Makros, die die Behandlung von Namen und Adressen vereinfachen.

In einigen Architekturen sind Rechner-Byte-Reihenfolge und Netz-Byte-Reihenfolge unterschiedlich. Folglich müssen Programme manchmal die Byte-Reihenfolge verändern. Die in der folgenden Tabelle zusammengefassten Makros setzen Bytes und Integers von Rechner-Byte-Reihenfolge in Netz-Byte-Reihenfolge um und umgekehrt.

Bibliotheks-Makros für die Umwandlung von Byte-Reihenfolgen:

Aufruf

Bedeutung

htonl(val)
htons(val)
ntohl(val)
ntohs(val)

32-bit-Felder von Rechner- in Netz-Byte-Reihenfolge umwandeln
16-bit-Felder von Rechner- in Netz-Byte-Reihenfolge umwandeln
32-bit-Felder von Netz- in Rechner-Byte-Reihenfolge umwandeln
16-bit-Felder von Netz- in Rechner-Byte-Reihenfolge umwandeln

Die Makros für die Umwandlung von Byte-Reihenfolgen werden benötigt, weil das Betriebssystem die IPv4-Adressen in Netz-Byte-Reihenfolge erwartet. Die Bibliotheksfunktionen, die Netzadressen zurückliefern, liefern diese in Netz-Byte-Reihenfolge. So können diese Netzadressen einfach in die Strukturen, die dem System zur Verfügung stehen, kopiert werden. Sie sollten deshalb nur beim Interpretieren von Netzadressen auf Probleme mit Byte-Reihenfolgen treffen.

Im BS2000 sind Rechner-Byte-Reihenfolge und Netz-Byte-Reihenfolge identisch. Deshalb sind die in der Tabelle aufgelisteten Makros als Null-Makros (Makros ohne Inhalt) definiert. Für die Erstellung portabler Programme ist die Verwendung der Makros jedoch dringend zu empfehlen.

In der IPv6-Implementierung wird für die Netzadresse grundsätzlich eine Netz-Byte-Reihenfolge erwartet, d.h. es gibt per Definiton keinen Unterschied zwischen Rechner-Byte-Reihenfolge und Netz-Byte-Reihenfolge. Deshalb gibt es auch keine entsprechende Umwandlungsfunktionen.
Gegebenenfalls muss nur die Portnummer umgewandelt werden.