HTON, HTONL und HTONS in C

HTON, HTONL und HTONS in C
Bedauerlicherweise speichert nicht jede Maschine die Bytes eines Multibyte -Wertes in der genauen Sequenz. Die Netzwerkkomponenten bieten einen herkömmlichen Byte -Sequenzstandard für Informationen, die über das Web übertragen werden und Systeme mit verschiedenen Byte -Bestellstandards ermöglichen, um eine Verbindung herzustellen. Netzwerk -Byte -Reihenfolge ist der Begriff, der verwendet wird, um dies zu beschreiben. Während der Erstellung einer Web -Socket -Verbindung sollte man sicherstellen, dass die Informationen in der Sünde.Hafen und Sünde.ADDR -Komponenten des Sockaddr im Konstrukt müssen in Netzwerk -Byte -Reihenfolge veranschaulicht werden. In diesem Leitfaden werden wir heute die Verwendung der HTON-, HTONL- und HTONS -Funktion von C diskutieren, um die Host -Byte -Sequenz von Unicode- oder Multibyte -Ganzzahl -Werten in die Netzwerk -Byte -Sequenz umzuwandeln.

Beispiel 1:

Zum Erstellen eines C -Code müssen Sie den GCC -Compiler auf Ihrem Kali Linux -System montieren lassen. In der Kali Linux -Shell müssen Sie eine neue C -Datei mit dem Namen „Htons erstellen.C". Sie können diese Datei mit der Anweisung "Nano" in einer einzigen im Bild aufgeführten Anweisung öffnen.

Nachdem die C -Datei bereits im NANO -Editor gestartet wurde, werden wir ein C -Skript hinzufügen, um die Verwendung von „Htons“ in C zu erarbeiten. Jeder C -Code beginnt mit einigen seiner Header oben, sodass wir die zugehörigen Funktionen und Variablen im Code problemlos verwenden können. Vorher müssen wir die wichtigsten Headers, die für die erfolgreiche Übertragung und Verwendung von Eingabe- und Ausgabedaten erforderlich sind, in das Skript einbeziehen und erforderlich. Daher haben wir das Schlüsselwort "include" abgeworfen, um den Standard -Header „Stdio“ hinzuzufügen.H ”,„ stdlib.H ”und„ Unistd.H ”im Code.

Danach müssen wir einige Systemheader hinzufügen, um die Socket -Programmierung in der C -Programmierung zu aktivieren. Daher verwenden wir die „Systeme/Typen.H "," Sys/Socket.H ”und„ Netinet/In.h ”Kopfball im Code. Um die Verwendung von Htons () -Funktionen im C -Code zu verwenden, müssen wir das „ARPA/INET“ verwenden.H ”auch hier Header. Jetzt ist es an der Zeit, Port 8082 mit dem Keyword Connect_port zu definieren, mit dem die Benutzer in der Socket -Programmierung verbunden werden müssen. Die Gesamtarbeit würde innerhalb der Main () -Funktion der C -Programmierung i erfolgen.e., Treibercode von C. Diese Funktion wurde mit der Verwendung des Struct -Schlüsselworts gestartet, um die Struktur „Sockadd_in“ mit einem variablen Namen „Adresse“ zu definieren, um die Socket -Adresse in dieser Variablen hinzuzufügen.

Jetzt wurde das Socket -Adressstrukturobjekt „Adresse“ verwendet, um die Sünde zu verwenden.Portvariable, die die Funktion htons () mit der Variablen connect_port i aufgerufen hat.e., eine Portnummer darin haben. Die Funktion htons () würde die Verwendung verschiedener Byte -Bestellstandards ermöglichen.

Jetzt ist es Zeit, die C -Datei mit dem Namen „Htons“ zu kompilieren.c ”nach dem Speichern des obigen Code. Um es zu kompilieren, müssen Sie das Schlüsselwort "GCC" mit dem Dateinamen "Htons" verwenden.C ”, -o -Option und der zu erstellende Objektdateiname i i.e., „Htons.aus".

Wenn Sie nun die von der GCC -Anweisung erstellte Objektdatei ausführen, ermöglicht sie die Verwendung von Standard -Byte -Bestellungen in unserem System.

Beispiel 2:

Es ist Zeit, ein weiteres Beispiel für C zu erstellen, um die HTONL -Funktion zusammen mit der HTONS -Funktion im Code zu verwenden. Dafür haben wir eine andere C -Datei mit dem Namen „Server erstellt.C ”und öffnen Sie es mit dem Standard -GNU -Nano -Editor, wie im angehängten Bild gezeigt.

Nach dem Öffnen der C -Datei haben wir dieselben Header in den oberen Zeilen hinzugefügt wie im ersten Beispiel. Aber wir haben auch einige neue Header hinzugefügt: „Zeit.H ”, um die Zeitfunktion zu verwenden, das„ Errno.H ”soll die Fehlernummer und die String erhalten.H ”Header wurde abgeschaltet, um die String -Variablen und -funktionen im Code zu verwenden. Dieser Code enthält nur die main () -Treibermethode.

Zwei Deskriptoren von Ganzzahltypen wurden auf 0 deklariert. Eine ist, die Datei und die andere zu hören, um eine Socket -Verbindung herzustellen. Die Struktur „Socket_Address“ wurde unter Verwendung der integrierten Struktur von Sockaddr_in der Socket-Programmierung spezifiziert, die die Adresse einer Sockel speichert. Ein Zeichenarray mit dem Namen "MessageBuffer" von Größe 1025 wird definiert, um jede Nachricht zu speichern, die in eine andere Byte -Bestellung konvertiert wird. Die integrierte Zeit_T-integrierte Zeitvariable wird verwendet. Der Return -Wert von der Funktion Socket () oder die Socket -Initialisierung über AF_INET- und SOCK_STREAM -Optionen hält den Rückgabewert aus der Funktion "Socket () oder die Socket -Initialisierung.

Die Funktion memset () wird hier verwendet, um die ersten Zählbytes einer Variablen server_address und messageBuffer auf „0“ zu setzen, wahrscheinlich während der Verwendung der SizeOof () -Funktion. Mit der integrierten Variablen von Server_Address haben wir die Socket-Familie als "AF_Inet" und die Socket-Eingangsadresse als "InAddr_any" mithilfe der Funktion htonl () von C definiert, indem die integrierte S_ADDR-Variable aufgerufen wird. Auf die gleiche Weise wurde die Variable server_address verwendet, um das SIN_PORT -Objekt aufzurufen und die Portnummer 8081 mithilfe der Funktion htons () von c zu speichern.

Jetzt wurde die Funktion von Bind () der Socket -Programmierung in C verwendet, um die Socket mit der angegebenen Adresse mit der Variablen listen_file_descriptor und der in IT server_address -Variablen angegeben zu binden. Die Hörfunktion des C -Programms wurde hier aufgerufen, um den Socket unter Nummer 10 zu hören. Die while -Schleife wurde hier initialisiert, um eine Verbindung zwischen Socket und Zeit zu erstellen, während die Funktion accept () verwendet wird. Dieser Prozess hat die Daten in Zeit -Byte -Datensequenz erhalten und in Standard -Daten -Byte -Reihenfolge konvertiert, die von der Socket und der lokalen Maschine verwendet werden können. Am Ende wurde die Verbindung ohne Probleme geschlossen.

Nachdem wir dieses Programm ausgeführt und zusammengestellt haben, haben wir seine Objektdatei generiert.

Bei der Ausführung seiner Objektdatei hat der Socket begonnen, die Zecken der Zeit für jede Sekunde zu hören und sie in Standard -Byte -Reihenfolge umzuwandeln.

Abschluss

In diesem Artikel handelt. Dafür haben wir zwei Beispiele mit den Funktionen Htons () und Htonl () verwendet.