Jak Python jest używany w sieciach?
Język programowania Pythona odgrywa istotną rolę w programowaniu sieciowym. Python ma wbudowaną standardową bibliotekę, która zapewnia pełną obsługę kodowania i dekodowania danych, protokołów sieciowych i wszystkich innych koncepcji sieciowych. Pisanie kodów do programowania sieci w Python jest o wiele łatwiejsze niż w C ++ lub Java. Język programowania Python zapewnia dwa poziomy dostępu do usług sieciowych: dostęp na niskim poziomie i wysokim poziomie. Dostęp niskiego poziomu oferuje podstawowe obsługę gniazda systemu operacyjnego. Podczas gdy dostęp na wysokim poziomie umożliwia protokoły implementacyjne, takie jak FTP. HTTP itp.
Ten artykuł pomoże ci w podstawowym zrozumieniu najsłynniejszej koncepcji sieci w Python, która jest programowaniem gniazdem.
Co to są gniazda?
Gniazda zapewniają dwukierunkowy kanał komunikacyjny między dwoma punktami końcowymi. Procesy na innych maszynach, procesy na tej samej maszynie i gniazdo udaje się komunikować ze wszystkimi. Można je zaimplementować na różnych kanałach, takich jak UDP, TCP, gniazda domeny unix itp. Biblioteka gniazd w Python zapewnia różne klasy do zarządzania wspólnym transferem danych lub ogólnego interfejsu do zarządzania resztą. Gniazda używają różnych rodzajów protokołów, aby określić połączenie portu do portu między serwerami a klientami. Te protokoły są używane do FTP, SMTP, e -mail, adresu IP, DNS itp. Słownictwo gniazd jest inne. Spójrz na następującą ilustrację:
Termin | Opis |
Domena | Zestaw protokołów używanych jako mechanizm transportu. |
Typ | Definiuje rodzaj komunikacji między gniazdami. |
Protokół | Określa rodzaj protokołu w ramach typu i domeny. |
Port | Punkt słuchania, w którym serwery słuchają, jak klienta wywołują. Składa się z nazwy usługi, ciągu zawierającego numer portu i numer portu FixNum. |
Nazwa hosta | Identyfikuje interfejs sieciowy i polega na następujących rzeczach: Ciąg „”, który identyfikuje adres transmisji. Ciąg zerowej długości. Ciąg, który zawiera nazwę hosta, adres podwójnego kwadu lub adres IPv6. Liczba całkowita, która definiuje adres binarny w kolejności bajt hosta. |
Co to jest programowanie gniazda?
Programowanie gniazda łączy dwa węzły w sieci komunikacji. Jeden węzeł to słuchacz, który jest powszechnie znany jako serwer, a drugi dociera do serwera, który jest powszechnie znany jako klient. Do programowania gniazda w Python moduł gniazda musi być uwzględniony.
Zbadajmy kilka przykładów, aby dowiedzieć się, jak wdrażać programowanie sieciowe w Python.
Przykład 1:
W tym przykładzie poznamy składnię modułu gniazda i sposób zaimportowania go do programu Python. Najpierw importujemy moduł gniazda w programie Python za pomocą instrukcji „Gniazdo importu”. Następnie możemy użyć funkcji modułów gniazda. Oto składnia modułu Socket ():
Gniazdo importuTeraz wykonajmy instrukcję, aby zobaczyć, co wraca:
Oto następujące dane wyjściowe:
Przykład 2:
Teraz nauczmy się tworzyć prosty serwer i prosty klient i zobaczmy, jak się ze sobą komunikują.
Oto kodowanie po stronie serwera:
Najpierw zaimportuj gniazdo, a następnie utwórz obiekt gniazda:
Importuj gniazdo jako sUzyskaj nazwę maszyny, wywołując instrukcję GethostName ():
nazwa hosta = gniazdo.Gethostname ()Podaj numer portu, który chcesz, aby serwer nawiązał połączenie między serwerem a klientem:
Portnum = 12345Teraz powiązaj host z portem, aby rozpocząć połączenie:
S.bind ((nazwa hosta, portnum))Następnym krokiem jest czekanie na połączenie klienta:
SocketModule.Słuchaj (5)Na koniec nawiązaj połączenie z klientem:
Choć prawda:Poniżej znajduje się kodowanie po stronie klienta:
Aby rozpocząć połączenie, moduł gniazda musi zostać zaimportowany po stronie klienta, tak jak został zaimportowany po stronie serwera:
Importuj gniazdo jako sPostępuj zgodnie z tym samym procesem, uzyskaj nazwę komputera lokalnego i zarezerwuj port zarezerwowany przez serwer w celu ustalenia połączenia:
nazwa hosta = gniazdo.Gethostname ()Teraz podłącz host z portem i nawiązaj połączenie między nimi:
SocketModule.Connect (('127.0.0.1 ', portnum))Po zakończeniu kodowania zarówno klienta i serwera, uruchom zarówno serwer, jak i klient w tle, aby zobaczyć wyniki:
Po udanym połączeniu zobaczysz następujące dane wyjściowe:
Przykład 3:
Zobaczmy kolejny przykład, aby lepiej zrozumieć, w jaki sposób serwer łączy się z klientem, a także jak serwer słucha klienta.
Oto kodowanie po stronie serwera:
W przypadku kodowania po stronie serwera postępuj zgodnie z tym samym procesem. Zaimportuj gniazdo, utwórz moduł gniazda, zarezerwuj numer portu, powiązaj hosta i port oraz wysłuchaj klienta. Jeśli możesz zaobserwować, warunek „jeśli” jest dodawany do pętli, aby sprawdzić określony warunek. Zobacz następujący kod:
Gniazdo importuPoniżej znajduje się kodowanie po stronie klienta:
Proces nawiązywania połączenia po stronie klienta jest ponownie, taki sam. Zaimportuj gniazdo, utwórz moduł gniazda, zarezerwuj numer portu i podłącz port z hostem:
Gniazdo importuTeraz zauważ, że klient wysyła wiadomość do serwera - „Cześć! Jestem wiadomość od klienta ”. Ta wiadomość jest odbierana przez serwer i jest drukowana.
Po udanym połączeniu między serwerem a klientem możesz zobaczyć następujące dane wyjściowe:
Wniosek
Jest to podstawowy przegląd programowania gniazda w Python i szybki początek od implementacji. Jest to jednak ogromny temat i zawiera wiele szczegółów ze złożonym kodowaniem. Po przejściu do tych prostych programów będziesz mógł dostać się do głębokości programowania gniazda.