Introduktion til Socket-programmering i Python

I socket-programmering etableres kommunikation via et netværk mellem to-socket (noder). Serveren fungerer som lytterporten, der lytter til en bestemt IP, og klientsoklen når ud til serverkontakten for kommunikation. For at arbejde i socket-programmering bliver vi nødt til at importere det socket-bibliotek, som python leverer.

Python Socket Server

En socket er et endepunkt for at sende eller modtage data, derfor har vi brug for en server og et client socket-program til dette formål. I vores eksempelprogram vil vi være vært for server og klient på den samme maskine. Vi kan endda sende og modtage via en serverkode. Det skal bemærkes, at vi kun kan have et serverprogram, mens vi kan have flere klientprogrammer.

Transmission Control Protocol (TCP) er den valgte standardprotokol. TCP er pålidelig, da de pakker, der tabes i netværket, detekteres og transmitteres af afsenderen. TCP tilvejebringer også levering af bestillede data, dvs. den rækkefølge, den sendes af afsenderen i en lignende rækkefølge, som den læses af applikationen.

server.py

Se på nedenstående program: server.py

Linie 3: Socket er et forudinstalleret bibliotek, og der oprettes et objekt til det. Dette socket-modul importeres i python-programmet, og det vil blive brugt som en socket-funktion senere i programmet. Vi opretter et objekt her, der vil kalde socket-funktionen.

Linie 4: socket.AF_INET svarer til IPV4 (Hvis man ønsker at bruge IPV6, så kan socket.AF_INET6 bruges. Dette henviser til socketfamilien. AF_INET specificerer den protokol, der skal bruges til kommunikation. IPV4 og IPV6 er forskellige transmissionskontrol måder eller protokoller til transmission af data via netværket.

IPV4 og IPV6 er bare forskellige typer IP-adresser. Stikket.AF_INET svarer til TCP. Transmission Control Protocol (TCP) fungerer med IP og definerer, hvordan computeren sender datapakker til hinanden.

Det næste, hvad der er nødvendigt, er TCP til det, vi har brug for en socket.SOCK_STREAM, som er sokkeltypen. TCP er en forbindelsesorienteret protokol, der hovedsageligt involverer udførelse af en trevejs håndtrykforbindelse med en server og en klient. Derefter giver vi et værtsnavn, hvor klienten opretter forbindelse.

Linie 5: Til værtsnavnet, "localhost" eller "127.0.01" eller socket.gethostname () kan begge disse bruges. Det får serverens IP-adresse.

Ovenstående er de to parametre, som vi definerer for stikket.

Linie 6: Vi har normalt mange havne i vores system, så vi er nødt til at gøre brug af en ikke-brugt værtshavn. Enhver fircifret kan bruges, da de nederste cifre hovedsageligt er besat.

Linie 7: Bindemetoden (), som binder værten og porten til et stik.

Alle disse trin er nødvendige for at starte vores server. Nu skal vi gøre klienten. Som nævnt før kan vi have flere klienter.

Linie 8: Vi har en mulighed for at nævne antallet af klienter, der kan interagere med serveren. Dette opnås ved s.listen (6). Det starter TCP-lytteren. Det numeriske repræsenterer antallet af klienter, der kan interagere. Hvis for eksempel den 7. klient kommer, vil den blive droppet.

Linie 9: s.accept () accepterer anmodningen fra klienten, og den returnerer to objekter, det ene er socket-client-objektet og det andet er adressen. IP-adressen vil være adressen på den klient, hvor vores klient er til stede.

Linie 10: Dette er mere som en anmeldelse til serveren om den forbindelse, der er oprettet.

Til sidst udskriver vi en erklæring, der skal vises, når begge programmer kører i terminalen. Når vi er færdige med vores serverprogram, skriver vi klientprogrammet.

Python Socket Client

Her diskuterer vi om python socket klient:

client.py

Her er vores program til klienten: client.py

Klientprogrammet har også en lignende socket, som vi ser i tilfælde af serverprogrammet. Normalt kører klientprogrammet fra serverprogrammet. Det er ikke i den samme maskine, som vi har i dette eksempel her. Med stikkontakter er det, vi agter at opnå, at kommunikere via Python-programmer på en lokalt netværksmaskine eller endda fjernnetværksmaskiner.

Linie 8: Der er en binding () -metode i serverprogrammet, her bruger metoden connect (). Tuplen her tager vært og port i metoden. Vi tager den samme port, som vi havde brugt i vores server.py

Vi er nødt til at køre server.py og client.py i forskellige terminaler, og det er sådan, vi ser forbindelsen opstå.

Produktion:

Skærmbillede er fra to forskellige terminaler, den ene åbnes i CMD og den anden åbnes i PowerShell i Windows. Det venstre vindue åbner server.py-programmet, og terminalen til højre åbner client.py-programmet.

Vi ser output, der er trykt på serversiden terminal.

Afsendelse af streng fra den ene fil til den anden fil

Vi vil prøve at sende en besked fra klientsiden til serversiden. Vi skriver en meddelelse i client.py-programmet.

1. client.py

Her er vores program til klienten: client.py

Linie 9 og linje 10: Vi indstiller meddelelsen i en variabel og sender meddelelsen i form af bytes og konverterer den eller koder den i UTF-8-format. (UTF er en Unicode-standard, da alt indholdet i meddelelsen er tegn, og de falder ind under Unicode-diagrammet). Vi formodes at kode og holde dataene så små som muligt, ellers vil transmissionen mislykkes på et tidspunkt.

Linie 11: Vi lukker forbindelsen.

I serverprogrammet foretager vi følgende ændringer.

2. server.py

Her er vores program til serveren: server.py

Linie 11: For at oprette forbindelsen bruger vi socket client-objekt. Vi nævner bufferstørrelsen ved at tilføje 1024 bytes (1 KB) til metoden, og vi gemmer variablen besked.

Linie 13: Så udskriver vi metoden.

Produktion:

Vi åbner begge terminaler igen og ser følgende output.

Konklusion - Socket-programmering i Python

Det grundlæggende i socket-programmering er blevet dækket her, men det skal bemærkes, at det er et massivt domæne, og at der er mange flere ting at dække i socket-programmering. At forstå det grundlæggende godt ville hjælpe med at håndtere komplekse klientserver-scenarier.

Anbefalede artikler

Dette er en guide til Socket-programmering i Python. Her diskuterer vi konceptet python socket server og python socket klient med kodeimplementering. Du kan også se på de følgende artikler for at lære mere -

  1. Python nestede sløjfer
  2. Top 15 funktioner i Python
  3. Top 7 Python IDE til Windows
  4. Forskellige metoder i Python-sæt

Kategori: