3 sposoby na napisanie serwera w Pythonie

Spisu treści:

3 sposoby na napisanie serwera w Pythonie
3 sposoby na napisanie serwera w Pythonie

Wideo: 3 sposoby na napisanie serwera w Pythonie

Wideo: 3 sposoby na napisanie serwera w Pythonie
Wideo: Use Outlook Archive to FREE SPACE & CLEAN UP Your Mailbox 2024, Kwiecień
Anonim

Stworzenie serwera od podstaw to duże zadanie. Jednak może to znacznie poprawić twoje umiejętności programistyczne i umożliwić dostosowanie go do twoich potrzeb. Ten samouczek będzie wykorzystywał python i niskopoziomowe programowanie gniazd do tworzenia serwera, aby klienci mogli się ze sobą komunikować. Obejmuje to również proces tylko w systemie Windows. Niektóre informacje zostaną podane w instrukcjach, ale jeśli potrzebujesz tylko kodu, jest on podany na rysunkach. (Uwaga: przedstawione tutaj instrukcje to tylko podstawy).

Kroki

Metoda 1 z 3: Instalacja Pythona

Napisz serwer w Pythonie Krok 1
Napisz serwer w Pythonie Krok 1

Krok 1. Pobierz Pythona

Przejdź do głównej strony Pythona i pobierz Python 2.7.10. Po pobraniu wykonaj kroki instalatora Pythona z domyślnymi ustawieniami. Ten link znajduje się tutaj

Napisz serwer w Pythonie Krok 2
Napisz serwer w Pythonie Krok 2

Krok 2. Uruchom IDLE (GUI Pythona)

Przejdź do folderu Python 2.7 i uruchom IDLE (GUI Pythona), python powinien teraz znajdować się w menu startowym, w którym znajduje się IDLE.

Napisz serwer w Pythonie Krok 3
Napisz serwer w Pythonie Krok 3

Krok 3. Utwórz nowy plik

Przejdź do Plik w lewym górnym rogu nowo otwartego okna i wybierz Nowy plik, powinno być otwarte puste okno z tytułem Bez tytułu.

Metoda 2 z 3: Tworzenie serwera

Napisz serwer w Pythonie Krok 4
Napisz serwer w Pythonie Krok 4

Krok 1. Zaimportuj potrzebne moduły

Dwa moduły potrzebne do tego kodu to „socket” i „threading”. Można to zrobić, wpisując w pierwszym wierszu „z importu gniazda *”, a w następnym wierszu „importuj wątki”.

Napisz serwer w Pythonie Krok 5
Napisz serwer w Pythonie Krok 5

Krok 2. Utwórz nowy wątek

To obsłuży dopasowanie 2 klientów do siebie. Wątki to procesy, które mogą być uruchomione podczas działania programu głównego. Wpisz dokładnie tak, jak pokazano na rysunku. Spowoduje to skonfigurowanie zmiennych w wątku, aby można było je później wywołać.

Napisz serwer w Pythonie Krok 6
Napisz serwer w Pythonie Krok 6

Krok 3. Utwórz proces wątku

Aby klienci mogli komunikować się bezpośrednio, musisz przesyłać sobie nawzajem informacje, w tym ich adres IP i port, z którego korzystają. W tym celu należy utworzyć obiekt gniazda, który można wykonać za pomocą polecenia „nazwa_zmiennej = gniazdo(AF_NET, SOCK_DGRAM)”. Spowoduje to utworzenie obiektu gniazda korzystającego z protokołu UDP. Następnie powiąż gniazdo ze swoim adresem IP z określonym numerem portu za pomocą „roomSocket.bind((' ', self.port))”. Pusty obszar oznacza adres IP twojego komputera w sieci lokalnej, a self.port przypisuje numer portu, który jest dołączany podczas wywoływania tego wątku. Ostatnią rzeczą, którą musisz zrobić z tym gniazdem, jest przesyłanie przez nie informacji. Ponieważ jest to gniazdo UDP, po prostu musisz znać adres IP i port komputera, do którego wysyłasz informacje, składnia do wysyłania to „nazwa gniazda.sendto(IP, port)”

Napisz serwer w Pythonie Krok 7
Napisz serwer w Pythonie Krok 7

Krok 4. Utwórz zmienne globalne

W tym kroku musisz zdefiniować kilka zmiennych, które obejmują listę użytkowników, numery portów, liczbę klientów, klientów wątku i identyfikator pokoju. Będziesz także musiał utworzyć gniazdo, aby Twój serwer mógł komunikować się z Internetem. Odbywa się to poprzez utworzenie nowego obiektu gniazda i powiązanie go z adresem IP z określonym numerem portu. (Numer portu może być dowolny, ale zwykle jest wysoki, aby uniknąć używania go przez inny proces lub używania zarezerwowanych numerów portów).

Napisz serwer w Pythonie Krok 8
Napisz serwer w Pythonie Krok 8

Krok 5. Utwórz główny proces serwera

Spowoduje to pobranie adresu klienta, a także rozpoczęcie utworzonego wcześniej wątku. Obejmuje to oczekiwanie na odebranie danych z bufora oraz uzyskanie adresu klienta i zapisanie go do użycia w wątku. Sposobem na uzyskanie informacji z gniazda jest wywołanie przez „NazwaGniazda.recvfrom(1024)”, liczba tutaj to po prostu ilość bajtów, które są odczytywane na raz. W tym przykładzie przechowujemy go w zmiennej o nazwie userAddr, a gdy to się stanie, możesz zapisać ten adres na liście, która została utworzona w kroku 4. Instrukcja if utworzy wątek pokoju, jeśli dwie osoby się połączą i utworzy tylko pokój kiedy zachodzą dwa różne połączenia.

Napisz serwer w Pythonie Krok 9
Napisz serwer w Pythonie Krok 9

Krok 6. Zapisz swoją pracę

Powinno to być zrobione w katalogu, do którego łatwo się dostać, aby był łatwo dostępny do testowania.

Metoda 3 z 3: Testowanie

Napisz serwer w Pythonie Krok 10
Napisz serwer w Pythonie Krok 10

Krok 1. Utwórz klienta testowego

Jest to bardzo podstawowy klient, który zajmie się tylko tym, czy serwer wysłał informacje innego klienta do bieżącego klienta. Należy pamiętać, że w przeciwieństwie do kodu serwera, ten kod wymaga nazwy serwera. Jeśli używasz tego wszystkiego na jednym komputerze, nazwa serwera powinna być nazwą twojego komputera. Możesz znaleźć nazwę swojego komputera, klikając prawym przyciskiem myszy Mój komputer i przechodząc do właściwości.

Napisz serwer w Pythonie Krok 11
Napisz serwer w Pythonie Krok 11

Krok 2. Zapisz swoją pracę

Powinien znajdować się w tym samym katalogu, co kod serwera.

Napisz serwer w Pythonie Krok 12
Napisz serwer w Pythonie Krok 12

Krok 3. Otwórz trzy różne okna poleceń

Przejdź do menu Start i w pasku wyszukiwania wpisz „cmd” i naciśnij Enter. Zrób to trzy razy. Okna powinny tak wyglądać.

Napisz serwer w Pythonie Krok 13
Napisz serwer w Pythonie Krok 13

Krok 4. Uruchom programy

Będziesz musiał wpisać dokładną ścieżkę podczas korzystania z okna poleceń. Musisz najpierw uruchomić kod serwera w jednym oknie poleceń, a następnie kod klienta testowego w pozostałych dwóch. Jeśli wszystko się powiedzie, dostaniesz coś z tych wiadomości w swoim oknie.

Ostrzeżenia

  • Ten program będzie działał tylko podczas uruchamiania i testowania klientów w tej samej sieci lokalnej.
  • Python 2.7.10 jest przestarzały i zbliża się do końca jego wsparcia. Aby kontynuować tworzenie dobrych serwerów, zaleca się zainstalowanie najnowszej wersji Pythona 3.

Zalecana: