Python af_inet socket

Python af_inet socket
“Et nettverk kan settes opp slik at to noder kan samhandle med hverandre ved hjelp av socket -programmering. Mens den andre kontakten når ut til en annen for å lenke, den ene stikkontakten (noden) lytter på en bestemt port på en IP -adresse. Under klientens tilkobling til serveren oppretter serveren lytterens kontakt. De danner grunnlaget for nettlesing. Det aller første trinnet i stikkprogrammering er å integrere sokkelpakken og generere en enkel stikkontakt.

Af_inet er det aller første argumentet, mens Sock_stream ville være det neste. AF_INET representerer IPv4 -adressefamilien. I motsetning til IPv6 til AF inet6, refererer AF inet til grenen eller riket. Den tilkoblingsorienterte TCP-kommunikasjonen blir referert til som SOCK_STREAM. Innenfor denne artikkelen vil vi ta en titt på bruken av AF_INET -parameteren i sokkelprogrammering av Python i Spyder Tool.”

Eksempel 1

Vi har kommet i gang med det aller første eksemplet på denne artikkelen for å lage en sikker forbindelse mellom kontakten og vertsserveren. For dette har vi importert sokkelmodulen til Python i den første linjen og "SYS" -modulen i den andre linjen ved å bruke nøkkelordet "Import". Etter det har vi benyttet oss.

For det første har TRY -setningen opprettet en ny socket “S” ved å bruke “Socket” -funksjonen til en socket -modul i Python med sine to parametere, AF_INET og SOCK_STREAM. AF_inet viser at stikkontakten vil bruke IPv4 -familien, og Sock_str Eam har blitt brukt til å bruke TCP -protokollen for tilkoblingsstrømmen. Utskriftsfunksjonen har brukt den enkle setningen for å skrive ut på konsollen til Spyder -verktøyet for å vise at socketopprettelsen er oppnådd.

Hvis forsøket på å få IP -adressen er vellykket, er uttalelsen med mindre klausul hoppet over, og den gjenværende koden blir utført deretter. Unntatt uttalelsen har blitt brukt til å vise feilen ved konsollen hvis opprettelsen av en stikkontakt fikk nøye med å bruke kontakten.Feilobjekt og lagre det til variabel “e”. Etter Try-unntak () -klæringen har vi initialisert portnummeret “P” til 80 for stikkontakten, i.e., Standard port for socket -tilkobling til en webserver er 80. Helt neste trinn er å løse verten og koble stikkontakten med den ved hjelp av verts -IP -adressen.

For dette har vi brukt uttalelsen om "prøve-unntak" igjen i Python-koden. Try -setningen er startet med bruk av GethostByName () -funksjonen til socket -modulen, som har brukt URL -en til Google for å få sin "IP" og lagre den i hipvariabelen. Hvis IP -adressen er funnet vellykket, vil den ikke utføre unntatt uttalelse og fortsette å utføre de neste kodelinjene. Ellers, hvis unntatt setningen fikk "gaierror" av socket -modulen, vil den bruke utskriftserklæringen for å vise at vi ikke klarer å løse IP -en til en vert, og "sys" -modulen vil bli brukt til å kalle "exit () ”-Funksjon for å avslutte programmet rett for øyeblikket.

Etter begge Try-bortsett fra utsagn, har vi brukt den nettopp fikk IP-adressen som "hofte" og portnummeret "P" for å koble stikkontakten med Google Host, i.e., Bruke Connect () -funksjonen til sokkelmodulen. Den endelige linjens utskriftserklæring vil vise at stikkontakten har koblet seg riktig til Google -verten. La oss lagre og kjøre koden vår i Spyder for å se hva vi har fått til gjengjeld.

Importkontakt
Importer Sys
prøve:
S = stikkontakt.stikkontakt (stikkontakt.Af_inet, stikkontakt.SOCK_STREAM)
trykk ("oppnådd socketoppretting!")
unntatt stikkontakt.Feil som e:
Print ("Kunne ikke opprette stikkontakt, feil: %s" %(e))
P = 80
prøve:
hofte = stikkontakt.gethostbyName ('www.Google.com ')
unntatt stikkontakt.GAIERROR:
trykk ("Fikk feil mens du løser verten!")
sys.exit()
s.Connect ((hip, p))
PRINT ("Socket er vellykket koblet til Google .. !")

Etter å ha kjørt den, fikk vi suksessmeldingene på Spyder Console -skjermen. Den første meldingen har vist at stikkontakten ble opprettet perfekt, og den andre linjen har vist at forbindelsen også ble etablert.

Eksempel 02

Et kommunikasjonssystem kalt UDP sender individuelle pakker gjennom nettet uten forsikringer om rettidig levering eller garantert ankomst. Dagens sitat er en slik tjeneste som sysselsetter UDP (QOTD). Vi har startet dette programmet med import av sokkelmodulen. Etter det har vi brukt Context Manager "med" for å lage en ny stikkontakt som "SOC" ved å bruke AF_INET- og SOCK_DGRAM -parametrene i socket () -funksjonen til socket -modulen for å lage en datagram -sokkel av IPv4 -familien.

Etter dette har vi brukt variabelen "tekst" for å initialisere en tom melding. QOTD -tjenesten fungerer ved å sende tilfeldig informasjon til stikkontakten; Når vi leverer en tom melding, svarer det bare med et sitat. Vi bruker binære sekvenser for TCP/UDP -kommunikasjon. Portnummeret er satt til 17 for å motta tilbudsdata. Vi har brukt nettadressen til en vert og portnummer for å få IP -adressen “ADR” til den aktuelle verten. Denne "ADR" -adressen og den tomme meldingen "tekst" er blitt sendt til SendTo () -funksjonen til socket -modulen med "SOC" -objektet for å sende den til den aktuelle verten.

"RECVFROM" -funksjonen er metoden som brukes av UDP -stikkontakter for å hente informasjon. Bufferstørrelsen fungerer som sin parameter. Den returnerte responsen er en duo (data, adresse), der "adresse" -parameteren er identifikatoren til stikkontakten som leverte dataene, og "info" -parameteren er en byte -sekvens som inneholder dataene som ble innhentet. Utskriftserklæringen har brukt "Decode" -funksjonen for å avkode og vise informasjonen vi har fått.

Importkontakt
med stikkontakt.stikkontakt (stikkontakt.Af_inet, stikkontakt.SOCK_DGRAM) som SOC:
tekst = b "
P = 17
adr = ("djxmmx.nett ", p)
Soc.Sendto (tekst, ADR)
Info, adresse = SOC.RECVFROM (1024)
trykk (info.dekode())

Når vi utfører dette programmet, har vi fått tilbudet til gjengjeld.

Konklusjon

Denne artikkelen handler om bruk av AF_INET -familien av socket -moduler i Python. Vi har prøvd to eksempler for å lage en stikkontakt, koble den til verten, sende en tom melding og motta sitatene fra verten.