„Python“ - keli ryšiai

Turinys
Kaip mes žinome Python Jame yra daug bibliotekų, leidžiančių mums dirbti ir valdyti ryšius tinkluose, nepriklausomai nuo to, ar jungiamės prie nuotolinių failų, ar mūsų programa tarnauja kaip serveris. Python buvo pastebėta, kad naudojant šį modulį tai labai lengva valdyti lizdasTačiau, kad tai būtų patikimesnė programa, turime sugebėti valdyti kelis ryšius.
Tinka tvarkyti kelis sujungimus Python galime naudoti Šakimas ir nuo Sriegimas, kad galėtume generuoti asinchroninius įvesties ir išvesties procesus, leidžiančius vienu metu palaikyti kelis ryšius.
Šakavimas ir sriegimas
Jei dar tik pradedame mokytis programuoti arba darome tik struktūrizuotą programavimą, galbūt šie terminai gali atrodyti sudėtingi ir nežinomi, tačiau jie yra paprastos sąvokos, kurias reikia suprasti ir suvirškinti, prieš tęsdami, pažiūrėkime apibrėžimus.
Šakimas: Tai terminas, naudojamas aplinkoje UNIX ir susideda iš bifurkacijos, procesą dubliuojame, o tada turime du vienodus procesus, tačiau kiekvienas su savo apimtimi, pirminis procesas yra žinomas kaip pirminis procesas, o pasikartojantis procesas yra žinomas kaip antrinis procesas, jei Analogiją su moksline fantastika galime matyti kaip lygiagrečias visatas, kur tie patys dalykai egzistuoja tik tuo atveju, jei jie gali elgtis skirtingai tose pačiose vietose.
Minusas Šakimas kad tai gali būti labai brangu išteklių požiūriu, todėl turime Sriegimas, a Siūlai Tai yra gija, šiuo atveju gijos yra papildomi procesai, priklausantys tam pačiam procesui, dalijantis atmintimi ir ištekliais, tokiu būdu sumažiname procesoriaus išteklių kainą, tačiau dalindamiesi atmintimi nustatome problemą, kurią turime turėti labai atsargiai su elementais, į kuriuos Siūlai kad nesukeltų pavojaus operacijoms.
Dabar, kai žinome teoriją ir pagrindines sąvokas, pamatysime keletą pavyzdžių, kuriuose galime pamatyti taikymą Python.
Kaip jau minėjome pradžioje dėl daugybės modulių ir bibliotekų Python, sukurti programas su tinklo funkcijomis yra labai paprasta, todėl galime sutelkti dėmesį į logiką, o ne į techninius aspektus.
Toliau pateiktame paveikslėlyje pamatysime pavyzdį Šakimas, tada paaiškinsime, kas atsitinka su kodu:

Pirmas dalykas, kurį mes darome, yra importuoti reikiamus modulius „SocketServer“, svarbu, kad pažvelgtume ForkingMixIn kas bus atsakingas už procesų dubliavimo valdymą su kiekviena užklausa, tada mes apibrėžiame klasę Serveris Y Tvarkytojas„Handler“ patalpiname konstruktorių, kuris valdys, kas nutiks su gaunamomis jungtimis, šiuo atveju jis gaus kliento vardą ir atspausdins pranešimą; Galiausiai mes parodome serverio klasę, perduodame jai parametrus, pirmiausia prievadą, kuriame jis priims ryšius, o tada klasę Tvarkytojas, pagaliau vadiname metodu tarnauti_visam laikui paleisti serverį, kad jis galėtų valdyti klientų užklausas.
Kaip matome, ši programa yra gana paprasta, pažiūrėkime, kaip mes galime pasiekti kažką panašaus Siūlai, šiame paveikslėlyje turime pavyzdį:

Galime suprasti, kad tai beveik tas pats kodas aukščiau, tuo skirtumu, kad vietoj naudojimo ForkingMixIn, mes naudojame ThreadingMixInTaigi, kaip matome, tai yra pagrindinės tokio elgesio bibliotekos kuriant programas, kurios priima kelis ryšius.Ar jums patiko ir padėjo ši pamoka?Galite apdovanoti autorių paspausdami šį mygtuką, kad suteiktumėte jam teigiamą tašką

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave