Uvod v programiranje vtičnic v Pythonu

Pri programiranju vtičnic se komunikacija vzpostavi prek omrežja med dvema vtičnicama (vozlišč). Strežnik deluje kot poslušalčeva vrata, ki poslušajo določen IP, odjemalčeva vtičnica pa sega do strežniške vtičnice za komunikacijo. Za delo v programiranju vtičnic bomo morali uvoziti knjižnico vtičnic, ki jo ponuja python.

Python Socket Server

Vtičnica je končna točka za pošiljanje ali prejemanje podatkov, zato potrebujemo strežnik in program odjemalca za odjemalce. V našem primeru bomo na istem računalniku gostili strežnik in odjemalca. Prek strežniške kode lahko celo pošiljamo in prejemamo. Treba je opozoriti, da imamo lahko samo en strežniški program, medtem ko imamo lahko več odjemalskih programov.

Protokol za nadzor prenosa (TCP) je privzeti protokol, ki je izbran. TCP je zanesljiv, saj pošiljatelj zazna pakete, ki jih spustite v omrežje. TCP zagotavlja tudi dostavo podatkov po naročilu, tj. Vrstni red, v katerem ga pošiljatelj pošlje v podobnem vrstnem redu, kot ga prebere aplikacija.

server.py

Oglejte si spodnji program: server.py

3. vrstica: Socket je vnaprej nameščena knjižnica in za to bo ustvarjen objekt. Ta modul vtičnice je uvožen v program python in bo pozneje v programu uporabljen kot funkcija vtičnice. Tu ustvarjamo predmet, ki bo poklical funkcijo vtičnice.

Vrstica 4: socket.AF_INET ustreza IPV4 (Če želite uporabiti IPV6, potem lahko uporabite socket.AF_INET6. To se nanaša na družino vtičnic. AF_INET določa protokol, ki bo uporabljen za komunikacijo. IPV4 in IPV6 sta različna krmiljenja prenosa načine ali protokoli prenosa podatkov po omrežju.

IPV4 in IPV6 sta le različni vrsti naslovov IP. Vtičnica.AF_INET ustreza TCP. Protokol za nadzor prenosa (TCP) deluje z IP in določa, kako računalnik drug drugemu pošilja podatkovne pakete.

Nato je potreben TCP, zato bomo potrebovali vtičnico.SOCK_STREAM, ki je vrsta vtičnice. TCP je protokol, ki je usmerjen v povezavo in v bistvu vključuje izvedbo tristranske povezave s strežnikom in odjemalcem. Nato navedemo ime gostitelja, kjer se bo stranka povezala.

Vrstica 5: Za ime gostitelja, "localhost" ali "127.0.01" ali socket.gethostname () lahko uporabite katero koli od teh. Dobi IP naslov strežnika.

Zgoraj sta dva parametra, ki ju definiramo za vtičnico.

Vrstica 6: Običajno imamo veliko pristanišč v našem sistemu, zato moramo uporabiti neporabljena gostiteljska vrata. Uporabite lahko katero koli štirimestno številko, saj so večinoma zasedene spodnje številke.

Vrstica 7: Metoda bind (), ki gostitelja in vrata veže na vtičnico.

Vsi ti koraki so potrebni za zagon našega strežnika. Zdaj moramo narediti stranko. Kot smo že omenili, imamo lahko več strank.

Vrstica 8: Imamo možnost, da omenimo številko odjemalca, ki lahko komunicira s strežnikom. To doseže s.listen (6). Zažene poslušalca TCP. Številčno predstavlja število odjemalcev, ki lahko sodelujejo. Če pride na primer 7. odjemalec, potem bo padel.

Vrstica 9: s.accept () sprejme zahtevo odjemalca in vrne dva predmeta, eden je objekt socket-odjemalec, drugi pa naslov. IP naslov bo naslov stranke, kjer je prisotna naša stranka.

Vrstica 10: To je bolj kot obvestilo strežniku o vzpostavljeni povezavi.

Nazadnje natisnemo izjavo, ki naj bo prikazana, ko se oba programa izvajata v terminalu. Ko končamo z našim strežniškim programom, bomo odpisali program za stranke.

Odjemalec Python Socket

Tukaj razpravljamo o odjemalcu python socket:

client.py

Tukaj je naš program za stranko: client.py

Program za odjemalce ima tudi podobno vtičnico, kot to vidimo v primeru strežniškega programa. Običajno program za odjemalce teče od strežniškega programa. Ni v istem stroju, kot ga imamo v tem primeru tukaj. Z vtičnicami želimo doseči komunikacijo prek programov Python na lokalno omrežnem stroju ali celo na daljavo povezanih strojih.

Vrstica 8: V strežniškem programu obstaja metoda vezave (), tukaj bo uporabljena metoda connect (). Tuple tu bo v načinu zajemal gostitelja in vrata. Vzamemo enaka vrata, kot smo jih uporabili v našem server.py

V različnih terminalih moramo zagnati server.py in client.py in tako bomo videli, kako se povezava pojavlja.

Izhod:

Posnetek zaslona je iz dveh različnih terminalov, enega odprtega v CMD, drugega pa v PowerShell v operacijskem sistemu Windows. V levem oknu se odpre program server.py, terminal na desni pa se odpre program client.py.

Izhod vidimo na terminalu na strani strežnika.

Pošiljanje niza iz ene datoteke v drugo datoteko

Poskusili bomo poslati sporočilo s strani odjemalca na strani strežnika. V program client.py napišemo sporočilo.

1. client.py

Tukaj je naš program za stranko: client.py

Vrstica 9 in 10. vrstica: Sporočilo nastavimo v spremenljivko in ga pošljemo v obliki bajtov ter ga pretvorimo ali kodiramo v formatu UTF-8. (UTF je standard Unicode, saj so vso vsebino sporočila znaki in spadajo pod Unicode grafikon)

Vrstica 11: Prekinimo povezavo.

V strežniškem programu bomo naredili naslednje spremembe.

2. server.py

Tukaj je naš program za strežnik: server.py

Vrstica 11: Za izgradnjo povezave uporabimo objekt odjemalca vtičnice. Velikost medpomnilnika omenjamo tako, da v metodo dodamo 1024 bajtov (1 KB) in obdržimo sporočilo spremenljivke.

Vrstica 13: Nato tiskamo metodo.

Izhod:

Oba terminala spet odpremo in vidimo naslednji izhod.

Zaključek - Programiranje vtičnic v Pythonu

Tu so zajete osnove programiranja vtičnic, vendar je treba opozoriti, da gre za obsežno domeno in da je v programiranju vtičnic treba zajeti še veliko drugih stvari. Dobro razumevanje osnov bi pomagalo pri obravnavi zapletenih scenarijev odjemalec-strežnik.

Priporočeni članki

To je vodnik za programiranje vtičnic v Pythonu. Tukaj razpravljamo o konceptu strežnika socket python in odjemalca python socket z implementacijo kode. Če želite izvedeti več, si oglejte tudi naslednje članke -

  1. Python ugnezdene zanke
  2. Top 15 značilnosti Pythona
  3. Top 7 Python IDE za Windows
  4. Različne metode v kompletih Python