Setsockopt -funksjon i C

Setsockopt -funksjon i C
“En Setsockopt () -funksjon er et veldig viktig konsept relatert til nettverk på C -språket. Det er en veldig nyttig funksjon relatert til kontakten. For å vite om denne funksjonen, må vi først kjenne konseptet med en stikkontakt.

En stikkontakt er innebygd programvare som kontrollerer det totale nettverket og blir behandlet som et endepunkt for å sende og motta pakker (data) over hele nettverket. Det oppfører seg som en kommunikator mellom to noder på samme eller forskjellige nettverk.

Setsockopt () er en funksjon i socket -programmeringen (Application Program) for å kontrollere denne kommunikasjonen og tildele litt bufferplass, tidskontroll og innen kringkasting.”

Kjennetegn på Setsockopt () -funksjon

1. Headerfil: SetSockOPT () -funksjonen er en forhåndsdefinert funksjon som definisjon er skrevet i en overskriftsfil i C -biblioteket som heter Headerfil.

2. Syntaks: int setSockopt (int socket, int nivå, int opsjon_name, const void *opsjon_value, socketlen_t opsjon_len);

3. Retur: Hvis Setsockopt () -funksjonen utfører riktig, returnerer den null. Men mislykket utførelse av Setsockopt () funksjon returnerer 0. For dette returnerer det en heltallverdi.

Anvendelse av setSockopt () -funksjon

Setsockopt () -funksjonen er API. Ved hjelp av denne API -en kan vi angi serveren vår eller gi alternativet til serveren vår for å lytte til den samme delen.

Eksempel 1

Gi oss beskjed om implementeringen av Setsockopt () -funksjonen i dette programmeringseksemplet.

#inkludere
#inkludere
#inkludere
#inkludere
#inkludere
#inkludere
#inkludere
#inkludere
int main ()

int x1, x2, x3, x4;
if ((x1 = socket (af_inet, sock_stream, 0)) < 0 )

Perror ("Kontroller enheten:");
Avslutt (0);

x4 = størrelse av (x2);
if (getsockopt (x1, ipproto_tcp, tcp_maxseg, (char*) & x2, & x4) < 0 )

Perror ("Feil oppstod på grunn av funksjonssvikt:");
Avslutt (0);

printf ("\ n Den sannsynlige verdien av x2 er: = %d", x2);
x3 = 12324;
if (setsockopt (x1, sol_socket, so_sndbuf, (char*) & x3, størrelse av (x3)) < 0 )

Perror ("sjansene for å ikke svare");
Avslutt (0);

x4 = størrelse av (x3);
if (getsockopt (x1, sol_socket, so_sndbuf, (char*) & x3, & x4) < 0 )

Perror ("Funksjonen reagerer ikke riktig:");
Avslutt (0);

printf ("\ n the bufferverdi er = %d \ n", x3);
retur 0;

Produksjon

Forklaring

For å utføre dette programmet, må vi ta med en eller annen overskriftsfil i kildekoden vår som, og . Til å begynne med vil vi lage en stikkontakt for å kalle en standardfunksjon stikkontakt () og passere noen standardparametere inne i parentesen. Nå vil vi kalle GetSockopt () -funksjonen for å ta den oppdaterte verdien for en stikkontakt og lagre den inne i en navngitt variabel x2. Nå vil vi sette verdien til stikkontakten ved å kalle Setsockopt () -funksjonen. Etter det vil vi igjen sjekke verdien for kontakten i bufferen ved hjelp av getockopt () -funksjonen og skrive ut verdien.

Eksempel-2

Her vil vi se et annet eksempel på Setsockpt () -funksjonen.

#inkludere
#inkludere
#inkludere
#inkludere
#inkludere
#inkludere
int main (void);
int main ()

int x1;
int x2;
socklen_t x3 = størrelse av (x2);
/ * Opprett den funksjonelle definisjonen */
if ((x1 = socket (pf_inet, sock_stream, ipproto_tcp)) < 0 )

Perror ("Opprette enheten:");
exit (exit_failure);

/ * Kontrollere tilstanden til den funksjonelle enheten */
if (getSockopt (x1, sol_socket, so_keepalive, & x2, & x3) < 0 )

Perror ("Funksjonen kan ikke svare riktig:");
Lukk (x1);
exit (exit_failure);

printf ("Tilstanden til den responderende funksjonen er: %s \ n", (x2 ? " PÅ AV " ) ) ;
/ * Aktivere det funksjonelle alternativet */
x2 = 1;
x3 = størrelse av (x2);
if (setsockopt (x1, sol_socket, so_keepalive, & x2, x3) < 0 )

Perror ("oppdage en viss feil");
Lukk (x1);
exit (exit_failure);

printf ("Denne funksjonelle verdien er installert: \ n");
/ * Sjekk statusen igjen */
if (getSockopt (x1, sol_socket, so_keepalive, & x2, & x3) < 0 )

Perror ("Sjekk en annen tid:");
Lukk (x1);
exit (exit_failure);

printf ("Kontrollerer den pågående responsen: %s \ n", (x2 ? " PÅ AV " ) ) ;
Lukk (x1);
exit (exit_success);
retur 0;

Produksjon

Forklaring

I dette programmeringseksemplet vil vi først lage en stikkontakt ved hjelp av socket () -funksjonen og passere noen argumenter inne i parentesen for å lage kontakten. Etter det vil vi kalle GetSockopt () -funksjonen for å sjekke stikkontilstandene. Nå vil vi kalle Setsockopt () -funksjonen for å angi tilstanden i aktiv modus. Nå vil vi igjen sjekke tilstanden på kontakten for å kjøre Getockopt () -funksjonen og skrive ut gjeldende tilstand på kontakten ved hjelp av kontakten ved hjelp av kontakten ved hjelp av kontakten “On” eller “Off” modus. Faktisk, ved hjelp av dette programmet, ønsker vi å forstå om kontaktens keepalive tilstand er aktiv eller ikke.

Konklusjon

Fra egenskapene, implementeringen og programmeringseksemplet på Setsockopt () -funksjonen, er det klart for oss veldig godt at denne funksjonen er veldig nyttig når det gjelder kontakten på de forskjellige nettverksnivåene. Ved hjelp av Setsockopt () -funksjonen kan vi gjøre forskjellige ting som å manipulere lengden på å sende og motta buffer, deres timeouts osv. Det gir oss anlegget til multicasting også.