3 spôsoby, ako napísať server v Pythone

Obsah:

3 spôsoby, ako napísať server v Pythone
3 spôsoby, ako napísať server v Pythone

Video: 3 spôsoby, ako napísať server v Pythone

Video: 3 spôsoby, ako napísať server v Pythone
Video: Шаг #1. Excel для Начинающих 2024, Marec
Anonim

Vytvorenie servera od začiatku je veľká úloha. To však môže výrazne zlepšiť vaše programátorské schopnosti a umožní vám to upraviť ho podľa svojich potrieb. Tento tutoriál bude používať python a nízkoúrovňové programovanie soketov na vytvorenie servera, aby klienti mohli navzájom komunikovať. To tiež pokryje iba proces na oknách. Niektoré informácie budú uvedené v pokynoch, ale ak chcete iba kód, je uvedený na obrázkoch. (Poznámka: tu uvedené pokyny sú iba základy).

Kroky

Metóda 1 z 3: Inštalácia Pythonu

Napíšte server pomocou Pythonu, krok 1
Napíšte server pomocou Pythonu, krok 1

Krok 1. Stiahnite si Python

Prejdite na hlavný web pythonu a stiahnite si Python 2.7.10. Po dokončení sťahovania postupujte podľa pokynov inštalátora pythonu s predvolenými nastaveniami. Tento odkaz je k dispozícii tu

Krok 2: Napíšte server pomocou Pythonu
Krok 2: Napíšte server pomocou Pythonu

Krok 2. Spustite IDLE (Python GUI)

Prejdite do priečinka Python 2.7 a spustite IDLE (Python GUI), python by teraz mal byť v ponuke Štart, kde sa nachádza IDLE.

Napíšte server pomocou Pythonu, krok 3
Napíšte server pomocou Pythonu, krok 3

Krok 3. Vytvorte nový súbor

V ľavom hornom rohu novo otvoreného okna prejdite na položku Súbor a vyberte položku Nový súbor. Mali by ste mať otvorené prázdne okno s názvom Bez názvu.

Metóda 2 z 3: Vytvorenie servera

Napíšte server pomocou Pythonu, krok 4
Napíšte server pomocou Pythonu, krok 4

Krok 1. Importujte potrebné moduly

Dva moduly potrebné pre tento kód sú „socket“a „threading“. To sa dá dosiahnuť zadaním prvého riadku „z importu soketu *“a do ďalšieho riadka „vlákno importu“.

Napíšte server pomocou Pythonu, krok 5
Napíšte server pomocou Pythonu, krok 5

Krok 2. Vytvorte nové vlákno

To zvládne párovanie 2 klientov navzájom. Vlákna sú procesy, ktoré je možné spustiť, kým je spustený hlavný program. Napíšte presne tak, ako to ukazuje obrázok. Tým sa nastavia premenné vo vlákne, aby ich bolo možné neskôr volať.

Napíšte server pomocou Pythonu, krok 6
Napíšte server pomocou Pythonu, krok 6

Krok 3. Vytvorte postup vlákna

Aby klienti mohli priamo komunikovať, musíte si navzájom poslať informácie, ktoré obsahujú ich IP adresu a port, ktorý používajú. Na to musíte vytvoriť objekt soketu, ktorý je možné vykonať pomocou „variableName = socket (AF_NET, SOCK_DGRAM)“. Tým sa vytvorí objekt soketu, ktorý používa protokol UDP. Ďalej Pripojte soket k vašej IP adrese s určitým číslom portu pomocou „roomSocket.bind (('', self.port))” Prázdna oblasť znamená IP adresu vášho počítača v rámci vašej lokálnej siete a self.port priradí číslo portu, ktoré je zahrnuté pri volaní tohto vlákna. Posledná vec, ktorú musíte urobiť s týmto soketom, je odosielať informácie prostredníctvom neho. Pretože ide o soket UDP, musíte jednoducho poznať IP a port počítača, na ktorý odosielate informácie, syntax na odosielanie je „socketName.sendto (IP, port)“

Napíšte server pomocou Pythonu, krok 7
Napíšte server pomocou Pythonu, krok 7

Krok 4. Vytvorte globálne premenné

Pre tento krok budete musieť definovať niekoľko premenných, ktoré obsahujú zoznam užívateľov, čísla portov, počet klientov, klientov pre vlákno a ID miestnosti. Budete tiež musieť vytvoriť soket, aby váš server mohol interagovať s internetom. To sa dosiahne vytvorením nového objektu soketu a jeho viazaním na vašu IP adresu s určitým číslom portu. (Číslo portu môže byť čokoľvek, ale zvyčajne je to niečo vysoké, aby ste sa vyhli používaniu iného procesu alebo rezervovaným číslam portov.)

Napíšte server pomocou Pythonu, krok 8
Napíšte server pomocou Pythonu, krok 8

Krok 5. Vytvorte hlavný serverový proces

Prevezme sa adresa klienta a spustí sa vlákno vytvorené skôr. To zahŕňa čakanie na prijatie údajov z vyrovnávacej pamäte a získanie adresy klienta a uloženie na použitie vo vlákne. Informácie, ako získať informácie zo zásuvky, je zavolať na číslo „socketName.recvfrom (1024)“. Tu uvedené číslo predstavuje iba počet bajtov, ktoré sa dajú naraz načítať. V tomto prípade ho ukladáme do premennej s názvom userAddr a akonáhle sa to stane, môžete túto adresu uložiť do zoznamu, ktorý bol vytvorený v kroku 4. Príkaz if vytvorí vlákno miestnosti, ak sa spoja dvaja ľudia a vytvorí iba miestnosť keď nastanú dve rôzne spojenia.

Napíšte server pomocou Pythonu, krok 9
Napíšte server pomocou Pythonu, krok 9

Krok 6. Uložte svoju prácu

To sa musí vykonať v adresári, ku ktorému je ľahké sa dostať, aby bol k nemu ľahký prístup na testovanie.

Metóda 3 z 3: Testovanie

Napíšte server pomocou Pythonu, krok 10
Napíšte server pomocou Pythonu, krok 10

Krok 1. Vytvorte testovacieho klienta

Jedná sa o veľmi základného klienta, ktorý zvládne iba to, či server odoslal alebo odoslal informácie o inom klientovi súčasnému klientovi. Upozorňujeme, že na rozdiel od kódu servera tento kód vyžaduje názov servera. Ak to všetko spustíte na jednom počítači, názov servera by mal byť názvom vášho počítača. Názov počítača môžete zistiť kliknutím pravým tlačidlom myši na položku Tento počítač a prechodom na položku Vlastnosti.

Napíšte server pomocou Pythonu, krok 11
Napíšte server pomocou Pythonu, krok 11

Krok 2. Uložte svoju prácu

Ten by mal byť v rovnakom adresári ako kód servera.

Napíšte server pomocou Pythonu, krok 12
Napíšte server pomocou Pythonu, krok 12

Krok 3. Otvorte tri rôzne okná príkazov

Prejdite do ponuky Štart a do vyhľadávacieho panela napíšte „cmd“a stlačte kláves Enter. Vykonajte to trikrát. Okná by mali vyzerať takto.

Napíšte server pomocou Pythonu, krok 13
Napíšte server pomocou Pythonu, krok 13

Krok 4. Spustite programy

Pri použití príkazového okna budete musieť zadať presnú cestu. V jednom príkazovom okne budete musieť najskôr spustiť kód servera a v ďalších dvoch testovací kód klienta. Ak bolo všetko úspešné, dostanete niečo z týchto správ do svojho okna.

Varovania

  • Tento program bude fungovať iba vtedy, keď ho spustíte a testujete klientov v rovnakej lokálnej sieti.
  • Python 2.7.10 je zastaraný a blíži sa koniec svojej podpory. Ak chcete pokračovať v vytváraní dobrých serverov, odporúča sa namiesto toho nainštalovať najnovšiu verziu Pythonu 3.

Odporúča: