Einen Server von Grund auf neu zu erstellen ist eine große Aufgabe. Dies kann jedoch Ihre Programmierfähigkeiten erheblich verbessern und es Ihnen ermöglichen, es an Ihre Bedürfnisse anzupassen. Dieses Tutorial verwendet Python- und Low-Level-Socket-Programmierung, um einen Server zu erstellen, damit Clients miteinander kommunizieren können. Dies wird auch nur den Prozess unter Windows abdecken. Einige Informationen werden in der Anleitung angegeben, aber wenn Sie nur den Code wünschen, ist er in den Abbildungen enthalten. (Hinweis: Die hier vorgestellten Anweisungen sind nur die Grundlagen).
Schritte
Methode 1 von 3: Python installieren

Schritt 1. Python herunterladen
Gehen Sie zur Hauptwebsite von Python und laden Sie Python 2.7.10 herunter. Führen Sie nach dem Herunterladen die Schritte des Python-Installationsprogramms mit den Standardeinstellungen durch. Dieser Link wird hier bereitgestellt

Schritt 2. Führen Sie IDLE (Python-GUI) aus
Gehen Sie in den Python 2.7-Ordner und führen Sie IDLE (Python GUI) aus. Python sollte sich jetzt in Ihrem Startmenü befinden, in dem sich der IDLE befindet.

Schritt 3. Erstellen Sie eine neue Datei
Gehen Sie zu Datei in der oberen linken Ecke des neu geöffneten Fensters und wählen Sie Neue Datei, Sie sollten ein leeres Fenster mit dem Titel Unbenannt geöffnet haben.
Methode 2 von 3: Erstellen des Servers

Schritt 1. Importieren Sie die benötigten Module
Die beiden für diesen Code benötigten Module sind „Socket“und „Threading“. Geben Sie dazu in der ersten Zeile „from socket import *“und in der nächsten Zeile „import threading“ein.

Schritt 2. Erstellen Sie einen neuen Thread
Dadurch wird das Abgleichen von 2 Clients miteinander verarbeitet. Threads sind Prozesse, die ausgeführt werden können, während das Hauptprogramm ausgeführt wird. Geben Sie genau so ein, wie die Abbildung zeigt. Dadurch werden die Variablen im Thread eingerichtet, damit sie später aufgerufen werden können.

Schritt 3. Thread-Prozess erstellen
Damit Clients direkt kommunizieren können, müssen Sie sich gegenseitig Informationen senden, einschließlich ihrer IP-Adresse und des von ihnen verwendeten Ports. Dazu müssen Sie ein Socket-Objekt erstellen, was mit „variableName = socket(AF_NET, SOCK_DGRAM)“möglich ist. Dadurch wird ein Socket-Objekt erstellt, das das UDP-Protokoll verwendet. Weiter Binden Sie den Socket an Ihre IP-Adresse mit einer bestimmten Portnummer mit "roomSocket.bind((' ', self.port))". Portnummer, die beim Aufrufen dieses Threads enthalten ist. Das Letzte, was Sie mit diesem Socket tun müssen, ist, Informationen darüber zu senden. Da dies ein UDP-Socket ist, müssen Sie lediglich die IP und den Port des Computers kennen, an den Sie Informationen senden. Die Syntax zum Senden lautet „socketName.sendto(IP, port)“.

Schritt 4. Erstellen Sie die globalen Variablen
Für diesen Schritt müssen Sie mehrere Variablen definieren, darunter eine Benutzerliste, Portnummern, Client-Anzahl, Clients für den Thread und die Raum-ID. Sie müssen auch einen Socket erstellen, damit Ihr Server mit dem Internet interagieren kann. Dies geschieht, indem Sie ein neues Socket-Objekt erstellen und es mit einer bestimmten Portnummer an Ihre IP-Adresse binden. (Die Portnummer kann beliebig sein, ist jedoch normalerweise etwas hoch, um zu vermeiden, dass sie von einem anderen Prozess verwendet oder reservierte Portnummern verwendet werden.)

Schritt 5. Erstellen Sie den Hauptserverprozess
Dies nimmt die Clientadresse auf und startet den zuvor erstellten Thread. Dazu gehört das Warten auf den Empfang von Daten aus dem Puffer und das Abrufen der Client-Adresse und das Speichern zur Verwendung im Thread. Um Informationen von Ihrem Socket zu erhalten, rufen Sie „socketName.recvfrom(1024)“auf. Die Zahl hier ist nur die Anzahl der Bytes, die gleichzeitig gelesen werden. In diesem Beispiel speichern wir sie in einer Variablen namens userAddr, und sobald dies geschieht, können Sie diese Adresse in der Liste speichern, die in Schritt 4 erstellt wurde. Die if-Anweisung erstellt einen Raum-Thread, wenn sich zwei Personen verbinden, und erstellt nur einen Raum wenn zwei verschiedene Verbindungen auftreten.

Schritt 6. Speichern Sie Ihre Arbeit
Dies sollte in einem leicht zugänglichen Verzeichnis erfolgen, damit es zum Testen leicht zugänglich ist.
Methode 3 von 3: Testen

Schritt 1. Erstellen Sie einen Testclient
Dies ist ein sehr einfacher Client, der nur verarbeitet, ob der Server die Informationen des anderen Clients an den aktuellen Client gesendet hat oder nicht. Bitte beachten Sie, dass dieser Code im Gegensatz zum Servercode einen Servernamen erfordert. Wenn Sie all dies auf einem Computer ausführen, sollte der Servername der Name Ihres PCs sein. Sie können Ihren Computernamen herausfinden, indem Sie mit der rechten Maustaste auf Arbeitsplatz klicken und zu Eigenschaften gehen.

Schritt 2. Speichern Sie Ihre Arbeit
Dieser sollte sich im selben Verzeichnis wie der Servercode befinden.

Schritt 3. Öffnen Sie drei verschiedene Befehlsfenster
Gehen Sie zum Startmenü und geben Sie in die Suchleiste „cmd“ein und drücken Sie die Eingabetaste. Tun Sie dies dreimal. So sollten die Fenster aussehen.

Schritt 4. Führen Sie die Programme aus
Sie müssen den genauen Pfad eingeben, wenn Sie das Befehlsfenster verwenden. Sie müssen zuerst den Servercode in einem Befehlsfenster und dann den Testclientcode in den anderen beiden ausführen. Wenn alles erfolgreich war, erhalten Sie diese Meldungen in Ihrem Fenster.
Warnungen
- Dieses Programm funktioniert nur, wenn es ausgeführt wird und Clients im selben lokalen Netzwerk getestet werden.
- Python 2.7.10 ist veraltet und nähert sich dem Ende seiner Unterstützung. Um weiterhin gute Server zu erstellen, wird empfohlen, stattdessen die neueste Version von Python 3 zu installieren.