Python - více připojení

Obsah
Jak víme Krajta Má mnoho knihoven, které nám umožňují pracovat a spravovat připojení v sítích, ať už se připojujeme ke vzdáleným souborům, nebo náš program slouží jako server, v základních příkladech použití soketů s Krajta bylo vidět, že se s modulem velmi snadno manipuluje zásuvkaAby to však byla robustnější aplikace, musíme být schopni zvládnout více připojení.
Pro zpracování více připojení v Krajta můžeme použít Rozdvojení a od Navlékání, aby bylo možné generovat asynchronní vstupní a výstupní procesy, které nám umožňují navštěvovat několik připojení současně.
Rozvětvení a řezání závitů
Pokud jsme v prvních krocích učení se programování nebo jsme provedli pouze strukturované programování, možná se tyto termíny mohou zdát komplikované, ale neznámé, nicméně jsou to jednoduché pojmy, kterým je třeba porozumět a strávit je, pojďme se podívat na definice, než budeme pokračovat dále.
Rozdvojení: Je to termín používaný v prostředích UNIX a spočívá v tom, že děláme bifurkaci, s procesem, který duplikujeme, a pak máme dva stejné procesy, ale každý s jeho rozsahem, původní proces je známý jako rodičovský proces a duplikovaný proces je známý jako podřízený proces, pokud provedeme analogicky se sci -fi je můžeme vidět jako paralelní vesmíry, kde stejné věci existují pouze v tom, že se mohou ve stejných bodech chovat odlišně.
Nevýhodou je Rozdvojení je, že to může být velmi nákladné z hlediska zdrojů, a proto máme Navlékání, a Vlákno Je to vlákno, v tomto případě jsou vlákna podprocesy, které patří do stejného procesu, sdílejí paměť a zdroje, tímto způsobem snižujeme náklady na zdroje procesoru, ale sdílením paměti nacházíme problém, kterým musíme být velmi opatrní s prvky, ke kterým Vlákna aby nedocházelo ke kompromitujícím operacím.
Nyní, když známe teorii a základní pojmy, uvidíme několik příkladů, ve kterých můžeme vidět aplikaci Krajta.
Jak jsme řekli na začátku díky velkému počtu modulů a knihoven existujících v Krajta, tvorba programů se síťovými funkcemi je velmi jednoduchá, takže se místo technických aspektů můžeme soustředit na logiku.
Podívejme se na následujícím obrázku na příklad Rozdvojení, pak vysvětlíme, co se stane s kódem:

První věcí, kterou uděláme, je import modulů, ze kterých potřebujeme Server Socket, důležité, na co se díváme, je ForkingMixIn kdo bude mít na starosti správu duplikace procesů s každým požadavkem, pak definujeme třídu Server Y PsovodDo Handleru umístíme konstruktor, který bude řídit, co se stane s příchozími připojeními, v tomto případě získá jméno klienta a provede sítotisk zprávy; Nakonec vytvoříme instanci třídy Server, předáme jí parametry, nejprve port, kde bude přijímat připojení, a poté třídu Psovod, nakonec voláme metodu sloužit_ navždy ke spuštění serveru, aby mohl spravovat požadavky klientů.
Jak vidíme, že je tato aplikace docela jednoduchá, podívejme se, jak můžeme něčeho podobného dosáhnout pomocí Vlákna, na následujícím obrázku máme příklad:

Můžeme si uvědomit, že je to téměř přesně stejný kód výše s tím rozdílem, že místo použití ForkingMixIn, používáme ThreadingMixInJak tedy vidíme, toto jsou klíčové knihovny pro toto chování při vytváření programů, které přijímají více připojení.Líbil se vám tento návod a pomohl mu?Autora můžete odměnit stisknutím tohoto tlačítka, čímž mu dáte kladný bod
wave wave wave wave wave