Python nettverk

Python nettverk
Python er et språk på høyt nivå som er spesielt designet for å gjøre utviklerenes liv enkelt. På den annen side kan nettverksprogrammering være en kjedelig og komplisert oppgave på andre programmeringsspråk, men det er enkelt og enkelt på et Python -programmeringsspråk. Det lar brukeren skrive skript som kan automatisere den komplekse nettverkskonfigurasjonen. I denne artikkelen vil vi se hvordan du utfører nettverksprogrammeringen ved hjelp av Python.

Hvordan brukes Python i nettverk?

Python -programmeringsspråk spiller en viktig rolle i nettverksprogrammering. Python har et innebygd standardbibliotek som gir fullstendig støtte for datakoding og avkoding, nettverksprotokoller og alle andre nettverkskonsepter. Å skrive kodene for nettverksprogrammering i Python er mye enklere enn i C ++ eller Java. Python-programmeringsspråk gir to nivåer av tilgang til nettverkstjenester: lavt nivå og høyt nivå tilgang. Tilgangen på lavt nivå gir grunnleggende støttestøtte til operativsystemet. Mens tilgangen på høyt nivå tillater implementeringsprotokoller som FTP. Http, etc.

Denne artikkelen vil hjelpe deg med en grunnleggende forståelse av det mest kjente nettverksbegrepet i Python som er socket -programmering.

Hva er stikkontakter?

Stikkontakter gir en toveis kommunikasjonskanal mellom to endepunkter. Prosesser på andre maskiner, prosesser på samme maskin, og stikkontakt klarer å kommunisere med alle. De kan implementeres på forskjellige kanaler som UDP, TCP, UNIX -domenestikk, etc. Socket Library i Python gir forskjellige klasser for å administrere den vanlige dataoverføringen eller et generisk grensesnitt for å administrere resten. Stikkontakter bruker forskjellige typer protokoller for å bestemme port-til-portforbindelsen mellom servere og klienter. Disse protokollene brukes til FTP, SMTP, e -post, IP -adresse, DNS, etc. Ordforrådet til stikkontakter er annerledes. Ta en titt på følgende illustrasjon:

Begrep Beskrivelse
Domene Sett med protokoller som brukes som transportmekanisme.
Type Definerer typen kommunikasjon mellom stikkontakter.
Protokoll Bestemmer type protokoll innenfor typen og domenet.
Havn Et lyttepunkt som serverne lytter til klienten ringer. Den består av navnet på en tjeneste, en streng som inneholder portnummeret og et fiksningsnummer.
Vertsnavn Identifiserer et nettverksgrensesnitt og består av følgende ting:

En streng “” som identifiserer kringkastingsadressen.

En null lengde streng.

En streng som inneholder vertsnavnet, en dobbel-kvadratadresse eller en IPv6-adresse.

Et heltall som definerer den binære adressen i vertsbytebestilling.

Hva er stikkprogrammering?

Socket -programmering kobler to noder på et kommunikasjonsnettverk. Den ene noden er lytteren som ofte er kjent som server, og den andre når ut til serveren som ofte er kjent som klienten. For programmering av stikkontakt i Python, må sokkelmodulen inkluderes.

La oss utforske noen eksempler for å lære å implementere nettverksprogrammeringen i Python.

Eksempel 1:

I dette eksemplet lærer vi syntaksen til sokkelmodulen og hvordan du importerer den til et Python -program. Først importerer vi sokkelmodulen i Python -programmet ved å bruke "import socket" -uttalelsen "-uttalelsen. Deretter kan vi bruke funksjonene til sokkelmodulene. Her er syntaks for socket () -modulen:

Importkontakt
socketModule = socket.stikkontakt (stikkontakt.Af_inet, stikkontakt.SOCK_STREAM)
Print (SocketModule)

La oss nå utføre uttalelsen for å se hva den kommer tilbake:

Her er følgende utgang:

Eksempel 2:

La oss nå lære å lage en enkel server og en enkel klient og se hvordan de kommuniserer med hverandre.

Her er kodingen på serversiden:

Importer først en stikkontakt og lag deretter et stikkontakt:

Importer stikkontakt som s
socketModule = socket.stikkontakt()

Få navnet på maskinen ved å ringe gethostName () uttalelsen:

Vertsnavn = Socket.gethostname ()

Oppgi portnummeret du vil at serveren skal lage en forbindelse mellom server og klient:

Portnum = 12345

Nå, bind verten med porten for å starte en tilkobling:

s.Bind ((Hostname, Portnum))

Neste trinn er å vente på klientforbindelsen:

SocketModule.Hør (5)

Til slutt, etabler en forbindelse med klienten:

Mens sant:
a, adrs = s.aksepterer()
trykk ('Tilkobling mottatt fra', adrs)
en.Send (B'thanks for Connecting ')
en.Lukk()

Følgende er klientsiden-koding:

For å starte en tilkobling, må sokkelmodulen importeres på klientsiden akkurat som den ble importert på serversiden:

Importer stikkontakt som s
socketModule = socket.stikkontakt()

Følg den samme prosessen, få navnet på den lokale maskinen, og reserver porten som ble reservert av serveren for å etablere en tilkobling:

Vertsnavn = Socket.gethostname ()
Portnum = 12345

Nå, koble verten med porten og innlede en forbindelse mellom dem:

SocketModule.koble til (('127.0.0.1 ', portnum)))
Print (SocketModule.RECV (1024)))
s.Lukk()

Når du er ferdig med både klient- og koding på serversiden, kan du starte både server og klient i bakgrunnen for å se resultatene:

Etter en vellykket forbindelse, vil du se følgende utdata:

Eksempel 3:

La oss se et annet eksempel for å ha en klarere forståelse for hvordan serveren kobles til klienten, samt hvordan serveren lytter til klienten.

Her er kodingen på serversiden:

For koding på serversiden, følg den samme prosessen. Importer kontakten, oppretter en sokkelmodul, reserver portnummeret, bind verten og porten og lytt til klienten. Hvis du kan observeres, blir "hvis" -tilstanden lagt til løkken for å sjekke en bestemt tilstand. Se følgende kode:

Importkontakt
Portnum = 60
Ipadrs = '127.0.0.1'
buffere = 30
socketModule = socket.stikkontakt (stikkontakt.Af_inet, stikkontakt.SOCK_STREAM)
SocketModule.Bind ((iPadrs, Portnum))
SocketModule.Lytt (1)
Conn, ADRS = SocketModule.aksepterer()
trykk ('Adressen til tilkoblingen er:', ADRS)
Mens sant:
data = conn.RECV (buffere)
Hvis ikke data:
gå i stykker
Print ("De mottatte dataene er:", data)
lure.Send (data)
lure.Lukk()

Følgende er klientsiden-koding:

Prosessen med å knytte en forbindelse på klientsiden er igjen, den samme. Importer kontakten, oppretter en sokkelmodul, reserver portnummeret og koble porten med verten:

Importkontakt
Portnum = 5006
Ipadrs = '127.0.0.1'
buffere = 1024
PrintMessage = "Hei! Jeg er en melding fra klienten.”
socketModule = socket.stikkontakt (stikkontakt.Af_inet, stikkontakt.SOCK_STREAM)
SocketModule.Connect ((iPadrs, Portnum))
SocketModule.Send (PrintMessage)
data = socketModule.RECV (buffere)
SocketModule.Lukk

Nå, observer at klienten sender en melding til serveren - “Hei! Jeg er en melding fra klienten ”. Denne meldingen mottas av serveren, og den blir skrevet ut.

Etter den vellykkede forbindelsen mellom serveren og klienten, vil du se følgende utdata:

Konklusjon

Dette er en grunnleggende oversikt over socket -programmering i Python og en rask start med implementeringen. Imidlertid er det et stort emne og inneholder mange detaljer med kompleks koding. Når du har kommet praktisk med disse enkle programmene, vil du kunne komme inn i dybden av socket-programmering.