Introducere în programarea Socket în Python

În programarea socket-ului, comunicarea se stabilește printr-o rețea între două prize (noduri). Serverul acționează ca portul ascultător care ascultă un anumit IP, iar soclul client ajunge la soclul serverului pentru comunicare. Pentru a lucra în programarea socket-ului, va trebui să importăm biblioteca de socket furnizată de python.

Python Socket Server

Un socket este un punct final pentru a trimite sau primi date, prin urmare, avem nevoie de un server și un program socket pentru client în acest scop. Pentru programul nostru de exemplu, vom găzdui server și client pe aceeași mașină. Putem chiar trimite și primi prin intermediul unui cod server. De menționat că putem avea un singur program server, în timp ce putem avea mai multe programe client.

Protocolul de control al transmisiei (TCP) este protocolul implicit ales. TCP este fiabil, deoarece pachetele care sunt aruncate în rețea sunt detectate și transmise de expeditor. TCP oferă, de asemenea, livrare de date în comandă, adică, comanda în care acestea sunt trimise de expeditor într-o comandă similară pe care o citește aplicația.

server.py

Aruncați o privire la programul de mai jos: server.py

Linia 3: Socket este o bibliotecă preinstalată și un obiect va fi creat pentru asta. Acest modul socket este importat în programul python și va fi folosit ca funcție socket ulterior în program. Creăm un obiect aici, care va apela funcția socket.

Linia 4: socket.AF_INET corespunde IPV4 (Dacă se dorește utilizarea IPV6, atunci socket.AF_INET6 poate fi utilizat. Aceasta se referă la familia de socket. AF_INET specifică protocolul care va fi utilizat pentru comunicare. IPV4 și IPV6 sunt diferite control de transmisie. modalități sau protocoale de transmitere a datelor prin rețea.

IPV4 și IPV6 sunt doar diferite tipuri de adrese IP. Socket.AF_INET corespunde TCP. Transmission Control Protocol (TCP) funcționează cu IP-ul și definește modul în care computerul își transmite pachete de date reciproc.

În continuare, este necesar TCP pentru că vom avea nevoie de o priză.SOCK_STREAM, care este tipul de socket. TCP este un protocol orientat către conexiune, implică în esență efectuarea unei conexiuni de strângere de mână cu trei căi cu un server și un client. Apoi, furnizăm un nume de gazdă la care clientul se va conecta.

Linia 5: Pentru numele de gazdă, „localhost” sau „127.0.01” sau socket.gethostname () pot fi utilizate oricare dintre acestea. Acesta primește adresa IP a serverului.

Cele de mai sus sunt cei doi parametri pe care îi definim pentru priză.

Linia 6: De obicei avem multe porturi în sistemul nostru, așa că trebuie să folosim un port gazdă care nu este folosit. Orice patru cifre pot fi utilizate deoarece majoritatea cifrelor inferioare sunt ocupate.

Linia 7: metoda de legare (), care leagă gazda și portul la o priză.

Toți acești pași sunt necesari pentru a porni serverul nostru. Acum, trebuie să facem clientul. După cum am menționat anterior, putem avea mai mulți clienți.

Linia 8: Avem o opțiune de a menționa numărul clientului care poate interacționa cu serverul. Acest lucru este obținut prin s.listen (6). Acesta pornește ascultătorul TCP. Numeric reprezintă numărul de clienți care pot interacționa. Dacă, de exemplu, al șaptelea client vine, acesta va fi abandonat.

Linia 9: s.accept () va accepta solicitarea de la client și va returna două obiecte, unul este obiectul socket-client și celălalt adresa. Adresa IP va fi adresa clientului unde este prezent clientul nostru.

Linia 10: Aceasta seamănă mai mult cu o notificare către server despre conexiunea care a fost stabilită.

În sfârșit, tipărim o declarație care ar trebui să fie afișată atunci când ambele programe rulează pe terminal. După ce am terminat cu programul nostru de server, vom scrie programul client.

Python Socket Client

Aici discutăm despre clientul socket python:

client.py

Iată programul nostru pentru client: client.py

Programul client are și o priză similară, așa cum vedem în cazul programului server. De obicei, programul client rulează de la programul serverului. Nu este în aceeași mașină ca în acest exemplu aici. Cu prize, ceea ce intenționăm să realizăm este să comunicăm prin intermediul programelor Python pe o mașină cu rețea locală sau chiar pe mașini cu rețea de la distanță.

Linia 8: Există o metodă de legare () în programul server, aici se va utiliza metoda connect (). Tuple de aici va lua gazda și portul în această metodă. Luăm același port pe care îl folosisem în serverul nostru.py

Trebuie să rulăm server.py și client.py în diferite terminale și astfel vom vedea că se întâmplă conexiunea.

ieşire:

Ecranul este de la două terminale diferite, unul deschis în CMD, iar celălalt deschis în PowerShell în Windows. Fereastra din stânga deschide programul server.py, iar terminalul din dreapta deschide programul client.py.

Vedem ieșirea tipărită în terminalul din server.

Se trimite șirul de la un fișier la altul fișier

Vom încerca să trimitem un mesaj din partea clientului către partea serverului. Vom scrie un mesaj în programul client.py.

1. client.py

Iată programul nostru pentru client: client.py

Linia 9 și Linia 10: Setăm mesajul într-o variabilă și trimitem mesajul sub formă de octeți și îl convertim sau îl codificăm în format UTF-8. (UTF este un standard Unicode, deoarece întregul conținut al mesajului este caractere și intră sub graficul Unicode). Trebuie să codificăm și să păstrăm datele cât mai mici, altfel transmisia va eșua la un moment dat.

Linia 11: Închidem conexiunea.

În programul server, vom face următoarele modificări.

2. server.py

Iată programul nostru pentru server: server.py

Linia 11: Pentru a construi conexiunea, folosim obiectul client socket. Menționăm dimensiunea bufferului adăugând 1024 octeți (1 KB) la metodă și păstrăm mesajul variabil.

Linia 13: Atunci imprimăm metoda.

ieşire:

Deschidem din nou ambele terminale și vedem următoarea ieșire.

Concluzie - Programare Socket în Python

Elementele de bază ale programării socket-ului au fost abordate aici, dar trebuie menționat că este un domeniu masiv și există multe alte lucruri de acoperit în programarea socket-ului. Înțelegerea corectă a elementelor de bază ar ajuta la abordarea scenariilor complexe client-server.

Articole recomandate

Acesta este un ghid pentru programarea Socket în Python. Aici discutăm conceptul de server python socket și client python socket cu implementarea codului. De asemenea, puteți consulta următoarele articole pentru a afla mai multe -

  1. Bucle cu cuiburi Python
  2. Top 15 caracteristici ale Python
  3. Top 7 Python IDE pentru Windows
  4. Diferite metode în seturi Python