Python - Flera anslutningar

Innehållsförteckning
Som vi vet Pytonorm Det har många bibliotek som gör att vi kan arbeta och hantera anslutningar i nätverk, oavsett om vi ansluter till fjärrfiler eller om vårt program fungerar som en server, i grundläggande exempel på att använda sockets med Pytonorm man har sett att det hanteras mycket enkelt med hjälp av modulen uttagFör att det ska vara en mer robust applikation måste vi dock kunna hantera flera anslutningar.
För hantering av flera anslutningar i Pytonorm vi kan använda Gaffel och från Trådning, för att kunna generera asynkrona in- och utgångsprocesser som gör att vi kan hantera flera anslutningar samtidigt.
Gaffel och gängning
Om vi ​​är i våra första steg för att lära oss att programmera eller om vi bara har gjort strukturerad programmering, kanske dessa termer kan verka komplicerade för att vara okända, men det är enkla begrepp att förstå och smälta, låt oss se definitionerna innan vi går vidare.
Gaffel: Det är en term som används i miljöer UNIX och består av att göra en bifurcation, med en process duplicerar vi den och sedan har vi två lika processer men var och en med dess omfattning, den ursprungliga processen är känd som överordnad process och den dubblerade processen är känd som barnprocessen, om vi gör en analogi med science fiction, kan vi se dem som parallella universum, där samma saker bara existerar att de kan bete sig olika på samma punkter.
Baksidan av Gaffel är att det kan vara väldigt dyrt resursmässigt och det är därför vi har Trådning, a Tråd Det är en tråd, i det här fallet är trådarna delprocesser som tillhör samma process, delar minne och resurser, på så sätt sänker vi kostnaden för processorresurserna, men genom att dela minne hittar vi problemet som vi måste vara mycket försiktig med de element till vilka Trådar för att inte resultera i äventyrad verksamhet.
Nu när vi känner till teorin och de grundläggande begreppen kommer vi att se några exempel som vi kan se applikationen i Pytonorm.
Som vi hade sagt i början tack vare det stora antalet moduler och bibliotek som finns i Pytonorm, att göra program med nätverksfunktioner är väldigt enkelt, så vi kan koncentrera oss på logiken istället för de tekniska aspekterna.
Låt oss se i följande bild ett exempel på Gaffel, då kommer vi att förklara vad som händer med koden:

Det första vi gör är att importera de moduler vi behöver från SocketServer, viktigt som vi tittar på är ForkingMixIn som kommer att ansvara för hanteringen av processerna med varje begäran, då definierar vi klassen Server Y HanterareInom Handler placerar vi en konstruktör, som är den som kommer att hantera vad som kommer att hända med de inkommande anslutningarna, i det här fallet kommer det att få namnet på klienten och göra ett skärmavtryck av ett meddelande; Slutligen instansierar vi serverklassen, vi skickar parametrarna till den, först porten där den kommer att acceptera anslutningar och sedan klassen Hanterare, äntligen kallar vi metoden serve_forever att starta servern så att den kan hantera klientförfrågningar.
Eftersom vi ser att denna applikation är ganska enkel, låt oss se hur vi kan uppnå något liknande med Trådar, i följande bild har vi ett exempel:

Vi kan inse att det är nästan exakt samma kod ovan med skillnaden som istället för att använda ForkingMixIn, vi använder ThreadingMixInSå som vi kan se är det här de viktigaste biblioteken för detta beteende när du skapar program som accepterar flera anslutningar.Gillade du och hjälpte denna handledning?Du kan belöna författaren genom att trycka på den här knappen för att ge honom en positiv poäng
wave wave wave wave wave