Hton, Htonl og Htons i C

Hton, Htonl og Htons i C
Beklageligvis lagrer ikke alle maskiner en multibyteverdiens byte i den nøyaktige sekvensen. Nettverkskomponentene gir en konvensjonell byte -sekvensstandard for informasjon som er overført over nettet, slik at de kan koble til forskjellige byte -ordrestandarder å koble til. Nettverks byte -ordre er betegnelsen som brukes for å beskrive dette. Under opprettelsen av en nettkontaktforbindelse, bør man sørge for at informasjonen i synden.port og synd.Addr -komponenter i sockaddr i konstruksjonen må illustreres i nettverks byte -rekkefølge. I denne guiden i dag vil vi diskutere bruken av Hton, Htonl og Htons -funksjonen til C for å konvertere vertsbyte -sekvensen til Unicode eller multibyte heltallverdier til nettverks byte -sekvens.

Eksempel 1:

For å lage en C -kode, må du ha GCC -kompilatoren montert på Kali Linux -systemet. Innenfor Kali Linux -skallet må du opprette en ny C -fil som heter “HTONS.C ”. Du kan åpne denne filen med "Nano" -instruksjonen i en enkelt instruksjon som er oppført på bildet.

Nå som C -filen allerede er lansert i Nano -redigereren, skal vi legge til noe C -skript for å utdype bruken av "Htons" i C. Hver C -kode starter med noen av overskriftene som er inkludert øverst, slik at vi enkelt kan bruke de relaterte funksjonene og variablene i koden. Før det må vi inkludere de viktigste overskriftene som kreves og er nødvendige for vellykket overføring og bruk av input- og outputdata i skriptet. Derfor har vi kastet av "Inkluder" nøkkelord for å legge til standardoverskriften "stdio.H ”,“ Stdlib.H ”, og“ Unistd.H ”i koden.

Etter dette må vi legge til noen systemoverskrifter for å aktivere programmering av sokkel i C -programmering. Derfor bruker vi “sys/typene.H ”,“ Sys/stikkontakt.h ”, og“ netinet/in.h ”header i koden. For å bruke bruken av Htons () -funksjoner i C -koden, må vi bruke “ARPA/inet.H ”heading her også. Nå er det på tide å definere port 8082 med Connect_port -nøkkelordet som er nødvendig for å koble brukerne i socket -programmering. Det generelle arbeidet ville bli gjort innenfor hovedfunksjonen ().e., Driverkode på C. Denne funksjonen er startet med bruk av Struct -nøkkelordet for å definere strukturen “Sockadd_in” med et variabelnavn “Adresse” for å legge til sokkeladressen i denne variabelen.

Nå har "adresse" adresse "for socket -adressestrukturen blitt brukt til å utnytte synden.Portvariabel som har ringt Htons () -funksjonen med Connect_Port -variabelen i.e., har et portnummer i det. Htons () -funksjonen vil muliggjøre bruk av forskjellige byteordre -standarder.

Nå er det på tide å samle C -filen som heter “HTONS.C ”etter å ha lagret koden ovenfor. For å kompilere det, må du bruke nøkkelordet “GCC” med filnavnet “HTONS.c ”, -o alternativ og objektfilnavnet som skal opprettes i.e., “Htons.ute".

Når du kjører objektfilen som er opprettet av GCC -instruksjonen, vil den muliggjøre bruk av standardbyteordrer i vårt system.

Eksempel 2:

Det er på tide å lage et annet eksempel på C for å bruke HTONL -funksjonen sammen med HTONS -funksjonen i koden. For dette har vi opprettet en annen C -fil som heter “Server.C ”og åpner den med standard GNU Nano -redaktør som vist på bildet vedlagt.

Etter å ha åpnet C -filen, la vi til de samme overskriftene i topplinjene som vi gjorde i det første eksemplet. Men vi har også lagt til noen nye overskrifter: “Tid.h ”for å bruke tidsfunksjonen,“ errno.H ”er å få feilnummeret, og“ Strengen.H ”header er blitt kastet av for å bruke strengvariablene og funksjonene i koden. Denne koden inneholder bare Main () drivermetoden.

To beskrivelser av heltalltyper er blitt erklært til 0. Den ene er å lytte til filen og den andre for å lage en stikkontakt. Strukturen “Socket_address” er spesifisert ved hjelp av Sockaddr_in innebygd struktur for socket-programmering som vil lagre adressen til en stikkontakt. En karakteroppstilling som heter “MessageBuffer” i størrelse 1025 er definert for å lagre enhver melding som vil bli konvertert til en annen byte -ordre. Time_t innebygd tidsvariabel brukes til å definere "flått" -variabelen for å telle de totale flått av en klokke. Listen_file_descriptor () vil holde returverdien fra socket () -funksjonen eller socketinitialiseringen gjennom AF_INET.

Memset () -funksjonen brukes her for å angi den første tellingsbyte av en server_adress og messagebuffer -variabel til “0” sannsynligvis mens du bruker størrelse () -funksjonen. Ved hjelp av den innebygde server_adressen har vi definert sokkelfamilien som "AF_INET", og socket-inngangsadressen som "inaddr_any" ved å bruke HTONL () -funksjonen til C ved å ringe S_addr innebygd variabel. På samme måte har server_adressvariabelen blitt brukt til å ringe SIN_PORT -objektet og lagre portnummer 8081 i den ved å bruke Htons () -funksjonen til C.

Nå har bind () -funksjonen til socket -programmering i C blitt brukt til å binde kontakten med adressen som er spesifisert ved hjelp av listen_file_descriptor -variabelen og server_adress -variabelen i den. Lyttefunksjonen til C -programmet er blitt kalt her for å lytte til kontakten på nummer 10. Mens sløyfen har blitt initialisert her for å lage en forbindelse mellom stikkontakten og tiden mens du bruker aksepten () -funksjonen. Denne prosessen har fått dataene i tidsbyte datasekvens og konvertere dem til standard data byte -ordre som kan brukes av stikkontakten og lokal maskin. Til slutt lukket forbindelsen uten problemer.

Etter å ha utført og sammenstilt dette programmet, har vi generert objektfilen.

Når du kjører objektfilen, har stikkontakten begynt å lytte til tidens flått for hvert sekund og konvertere den til standard byte -ordre.

Konklusjon

Denne artikkelen handler om bruk av nettverksbytebestillings standardfunksjoner for å konvertere noen forskjellige data som kommer fra nettet til standard nettverksbyte -sekvenser. For dette har vi brukt to eksempler ved bruk av Htons () og HTonl () -funksjonene.