Hton, Htonl e Htons in C

Hton, Htonl e Htons in C
Purtroppo, non ogni macchina memorizza i byte di un valore multibyte nella sequenza esatta. I componenti della rete forniscono uno standard di sequenza di byte convenzionale per le informazioni trasportate sul Web, consentendo ai sistemi con vari standard di ordine di byte da connettersi. L'ordine di byte di rete è il termine usato per descriverlo. Durante la creazione di una connessione Web Socket, si dovrebbe garantire che le informazioni nel peccato.porto e peccato.I componenti ADDR del Sockaddr nel costrutto devono essere illustrati nell'ordine del byte di rete. In questa guida oggi discuteremo dell'uso della funzione Hton, Htonl e Htons di C per convertire la sequenza di byte host di valori interi unicode o multibyte alla sequenza di byte di rete.

Esempio 1:

Per la creazione di un codice C, è necessario avere il compilatore GCC montato sul tuo sistema Kali Linux. All'interno della shell di Kali Linux, è necessario creare un nuovo file C chiamato "Htons.C". È possibile aprire questo file con l'istruzione "nano" in un'unica istruzione elencata nell'immagine.

Ora che il file C è già stato lanciato nel nano editor, aggiungeremo uno script C per elaborare l'uso di "htons" in c. Ogni codice C inizia con alcune delle sue intestazioni incluse nella parte superiore in modo da poter facilmente utilizzare le funzioni e le variabili correlate nel codice. Prima di ciò, dobbiamo includere le intestazioni principali richieste e necessarie per la trasmissione e l'uso di successo dei dati di input e output nello script. Pertanto, abbiamo lanciato la parola chiave "Includi" per aggiungere l'intestazione standard "stdio.H "," stdlib.h "e" unistd.h "nel codice.

Successivamente, dobbiamo aggiungere alcune intestazioni di sistema per abilitare la programmazione di socket nella programmazione C. Pertanto, stiamo usando i "sys/tipi.H "," Sys/Socket.h "e" netinet/in.H ”Intestazione nel codice. Per utilizzare l'uso delle funzioni di htons () nel codice C, dobbiamo utilizzare "ARPA/INET.h ”anche qui. Ora, è il momento di definire la porta 8082 con la parola chiave Connect_port necessaria per collegare gli utenti nella programmazione socket. Il lavoro complessivo verrebbe svolto all'interno della funzione principale () della programmazione C i.e., Codice del driver di C. Questa funzione è stata avviata con l'uso della parola chiave struct per definire la struttura "Sockadd_in" con un "indirizzo" del nome variabile per aggiungere l'indirizzo socket in questa variabile.

Ora, l'oggetto della struttura dell'indirizzo socket "indirizzo" è stato utilizzato per utilizzare il peccato.variabile porta che ha chiamato la funzione htons () con la variabile connect_port i.e., avere un numero di porta dentro. La funzione htons () consentirebbe l'uso di vari standard di ordine di byte.

Ora è il momento di compilare il file C chiamato "Htons.c "dopo aver salvato il codice sopra. Per compilarlo, è necessario utilizzare la parola chiave "GCC" con il nome del file "Htons.c ”, -o opzione e il nome del file oggetto da creare i.e., “Htons.fuori".

Ora, quando si esegue il file oggetto creato dall'istruzione GCC, consentirà l'uso di ordini di byte standard nel nostro sistema.

Esempio 2:

È tempo di creare un altro esempio di C per utilizzare la funzione Htonl insieme alla funzione Htons nel codice. Per questo, abbiamo creato un altro file C chiamato "Server.C "e aprerlo con l'editor Nano GNU standard come mostrato nell'immagine allegata.

Dopo aver aperto il file C, abbiamo aggiunto le stesse intestazioni nelle linee migliori come abbiamo fatto nel primo esempio. Ma abbiamo anche aggiunto alcune nuove intestazioni: “Time.h "per utilizzare la funzione temporale," errno.h "è ottenere il numero di errore e la" stringa.H ”l'intestazione è stata lanciata per utilizzare le variabili e le funzioni della stringa nel codice. Questo codice contiene solo il metodo del driver principale ().

Due descrittori di tipi di interi sono stati dichiarati a 0. Uno è ascoltare il file e l'altro per stabilire una connessione socket. La struttura "Socket_Address" è stata specificata utilizzando la struttura incorporata di Sockaddr_in della programmazione socket che memorizzerà l'indirizzo di una presa. Un array di caratteri chiamato "MessageBuffer" della dimensione 1025 è definito per archiviare qualsiasi messaggio che verrà convertito in un altro ordine di byte. La variabile di tempo incorporata Time_t viene utilizzata per definire la variabile "ticks" per contare le zecche totali di un orologio. Listen_file_descriptor () manterrà il valore di ritorno dalla funzione socket () o l'inizializzazione del socket tramite le opzioni AF_inet e Sock_Stream.

La funzione Memset () viene utilizzata qui per impostare i byte di primo conteggio di una variabile Server_Address e MessageBuffer su "0" probabilmente durante l'utilizzo della funzione SIGRAFICAOF (). Utilizzando la variabile integrata Server_Address, abbiamo definito la famiglia Socket come "AF_INET" e l'indirizzo di input socket come "inaddr_any" usando la funzione Htonl () di C chiamando la variabile S_ADDR integrata. Allo stesso modo, la variabile Server_Address è stata utilizzata per chiamare l'oggetto SIN_PORT e archiviare il numero di porta 8081 in esso utilizzando la funzione htons () di C.

Ora, la funzione bind () della programmazione socket in C è stata utilizzata per legare il socket con l'indirizzo specificato utilizzando la variabile Listen_File_Descriptor e la variabile Server_Address in essa. La funzione di ascolto del programma C è stata chiamata qui per ascoltare la presa al numero 10. Il ciclo while è stato inizializzato qui per creare una connessione tra la presa e il tempo durante l'utilizzo della funzione accetta (). Questo processo ha ottenuto i dati nella sequenza dei dati del byte temporale e la convertendo in ordine di byte di dati standard che può essere utilizzato dalla presa e dalla macchina locale. Alla fine, la connessione si è chiusa senza alcun problema.

Dopo aver eseguito e compilato questo programma, abbiamo generato il suo file di oggetti.

Durante l'esecuzione del suo file di oggetti, il socket ha iniziato ad ascoltare le zecche di tempo per ogni secondo e convertirlo in ordine di byte standard.

Conclusione

Questo articolo riguarda l'uso delle funzioni standard dell'ordine del byte di rete per convertire alcuni dati diversi provenienti dal Web a sequenze di byte di rete standard. Per questo, abbiamo utilizzato due esempi utilizzando le funzioni Htons () e Htonl ().