Spisie treści
Jak wiemy Pyton Posiada wiele bibliotek, które pozwalają nam na pracę i zarządzanie połączeniami w sieci, czy łączymy się z plikami zdalnymi, czy nasz program pełni rolę serwera, w podstawowych przykładach wykorzystania gniazd z Pyton zauważono, że za pomocą modułu można go bardzo łatwo obsługiwać gniazdo elektryczneJednak, aby była to bardziej niezawodna aplikacja, musimy być w stanie obsłużyć wiele połączeń.Do obsługi wielu połączeń w Pyton możemy użyć Rozwidlenie i od Gwintowanie, aby móc generować asynchroniczne procesy wejścia i wyjścia, które pozwalają nam obsługiwać kilka połączeń jednocześnie.
Rozwidlenie i gwintowanie
Jeśli jesteśmy na pierwszych krokach w nauce programowania lub jeśli wykonaliśmy tylko programowanie strukturalne, być może te terminy mogą wydawać się skomplikowane, aby były nieznane, jednak są to proste pojęcia do zrozumienia i przetrawienia, zobaczmy definicje, zanim przejdziemy dalej.
Rozwidlenie: Jest to termin używany w środowiskach UNIX i polega na wykonaniu rozgałęzienia, z procesem, który go duplikujemy, a następnie mamy dwa równe procesy, ale każdy ma swój zakres, pierwotny proces jest znany jako proces nadrzędny, a proces powielony jest znany jako proces potomny, jeśli tworzymy Analogicznie do science fiction, możemy je postrzegać jako równoległe wszechświaty, w których te same rzeczy istnieją tylko po to, by w tych samych punktach zachowywać się inaczej.
Wadą Rozwidlenie jest to, że może to być bardzo kosztowne pod względem zasobów i dlatego mamy Gwintowanie, a Wątek Jest to wątek, w tym przypadku wątki to podprocesy należące do tego samego procesu, współdzielące pamięć i zasoby, w ten sposób obniżamy koszt zasobów procesora, jednak dzieląc pamięć znajdujemy problem, który musimy rozwiązać bardzo ostrożny z elementami, do których Wątki aby nie skutkować zagrożonymi operacjami.
Teraz, gdy znamy teorię i podstawowe pojęcia, zobaczymy kilka przykładów, dzięki którym możemy zobaczyć aplikację w Pyton.
Jak powiedzieliśmy na początku, dzięki dużej liczbie modułów i bibliotek istniejących w Pyton, tworzenie programów z funkcjonalnościami sieciowymi jest bardzo proste, dzięki czemu możemy skoncentrować się na logice zamiast na aspektach technicznych.
Zobaczmy na poniższym obrazku przykład Rozwidlenie, następnie wyjaśnimy, co dzieje się z kodem:
Pierwszą rzeczą, którą robimy, jest import modułów, z których potrzebujemy SocketServerważne, na który patrzymy, to RozwidlenieMixIn kto będzie odpowiedzialny za zarządzanie powielaniem procesów z każdym żądaniem, wtedy definiujemy klasę serwer Tak TreserW ramach Handlera umieszczamy konstruktora, czyli tego, który będzie zarządzał tym, co stanie się z przychodzącymi połączeniami, w tym przypadku pozyska nazwę klienta i wykona zrzut ekranu wiadomości; Na koniec tworzymy instancję klasy Server, przekazujemy do niej parametry, najpierw port, na którym będzie akceptować połączenia, a następnie klasę Treser, w końcu nazywamy metodę służyć_na zawsze aby uruchomić serwer, aby mógł zarządzać żądaniami klientów.
Ponieważ widzimy, że ta aplikacja jest dość prosta, zobaczmy, jak możemy osiągnąć coś podobnego za pomocą Wątki, na poniższym obrazku mamy przykład:
Możemy zdać sobie sprawę, że jest to prawie dokładnie ten sam kod powyżej, z tą różnicą, że zamiast używać RozwidlenieMixIn, Używamy ThreadMixInTak więc, jak widzimy, są to kluczowe biblioteki dla tego zachowania podczas tworzenia programów, które akceptują wiele połączeń.Podobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt