Python Networking

Python Networking
Python ist eine hochrangige Sprache, die speziell entwickelt wurde, um das Leben der Entwickler einfach zu machen. Auf der anderen Seite kann die Netzwerkprogrammierung eine langwierige und komplizierte Aufgabe in anderen Programmiersprachen sein, aber es ist einfach und einfach in einer Python -Programmiersprache. Der Benutzer kann Skripts schreiben, mit denen die komplexe Netzwerkkonfiguration automatisiert werden kann. In diesem Artikel werden wir sehen, wie die Netzwerkprogrammierung mit Python durchgeführt wird.

Wie wird Python für die Vernetzung verwendet??

Die Python -Programmiersprache spielt eine wichtige Rolle bei der Netzwerkprogrammierung. Python verfügt über eine integrierte Standardbibliothek, die eine vollständige Unterstützung für Datencodierung und Dekodierung, Netzwerkprotokolle und alle anderen Netzwerkkonzepte bietet. Das Schreiben der Codes für die Netzwerkprogrammierung in Python ist viel einfacher als in C ++ oder Java. Die Python-Programmiersprache bietet zwei Ebenen des Zugriff. Der Access auf niedriger Ebene bietet die grundlegende Socket-Unterstützung des Betriebssystems. Während der Zugang auf hoher Ebene die Implementierungsprotokolle wie FTP ermöglicht. Http usw.

Dieser Artikel hilft Ihnen bei einem grundlegenden Verständnis des berühmtesten Konzepts der Vernetzung in Python, der Socket -Programmierung ist.

Was sind Sockel?

Sockeln bieten einen bidirektionalen Kommunikationskanal zwischen zwei Endpunkten. Prozesse auf anderen Maschinen, Prozessen auf derselben Maschine und Socket schafft es, mit allen zu kommunizieren. Sie können auf verschiedenen Kanälen wie UDP, TCP, UNIX -Domänen -Sockets usw. implementiert werden. Die Socket -Bibliothek in Python bietet verschiedene Klassen für die Verwaltung der gemeinsamen Datenübertragung oder eine generische Schnittstelle zum Verwalten des Restes. Sockeln verwenden verschiedene Arten von Protokollen, um die Port-zu-Port-Verbindung zwischen Servern und Clients zu bestimmen. Diese Protokolle werden für FTP, SMTP, E -Mail, IP -Adresse, DNS usw. verwendet. Das Vokabular von Steckdosen ist anders. Schauen Sie sich die folgende Abbildung an:

Begriff Beschreibung
Domain Satz von Protokollen, die als Transportmechanismus verwendet werden.
Typ Definiert die Art der Kommunikation zwischen Steckdosen.
Protokoll Bestimmt die Art des Protokolls innerhalb des Typs und der Domäne.
Hafen Ein Hörpunkt, durch den die Server den Kundenaufrufen hören. Es besteht aus dem Namen eines Dienstes, einer Zeichenfolge, die die Portnummer enthält, und einer Fixnum -Portnummer.
Hostname Identifiziert eine Netzwerkschnittstelle und besteht aus den folgenden Dingen:

Eine Zeichenfolge "", die die Sendungsadresse identifiziert.

Eine String mit Nulllänge.

Eine Zeichenfolge, die den Hostnamen, eine Doppelquad-Adresse oder eine IPv6-Adresse enthält.

Eine Ganzzahl, die die binäre Adresse in Host -Byte -Reihenfolge definiert.

Was ist Socket -Programmierung?

Die Socket -Programmierung verbindet zwei Knoten in einem Kommunikationsnetzwerk. Ein Knoten ist der Hörer, der allgemein als Server bezeichnet wird, und der andere gilt auf den Server, der allgemein als Client bezeichnet wird. Für Socket -Programmierung in Python muss das Socket -Modul enthalten sein.

Erforschen wir einige Beispiele, um zu erfahren, wie die Netzwerkprogrammierung in Python implementiert werden kann.

Beispiel 1:

In diesem Beispiel lernen wir die Syntax des Socket -Moduls und wie man sie in ein Python -Programm importiert. Zunächst importieren wir das Socket -Modul im Python -Programm mit der Anweisung „Socket importieren“. Dann können wir die Funktionen der Sockelmodule verwenden. Hier ist die Syntax des Socket () -Moduls:

Socket importieren
SocketModule = Socket.Sockel (Sockel.Af_inet, Sockel.SOCK_STREAM)
Druck (SocketModule)

Führen wir nun die Anweisung aus, um zu sehen, was sie zurückgibt:

Hier ist die folgende Ausgabe:

Beispiel 2:

Lassen Sie uns nun lernen, wie Sie einen einfachen Server und einen einfachen Client erstellen und sehen, wie er miteinander kommuniziert.

Hier ist die serverseitige Codierung:

Importieren Sie zuerst einen Socket und erstellen Sie dann ein Socket -Objekt:

Steckdose als s importieren
SocketModule = Socket.Steckdose()

Holen Sie sich den Namen der Maschine, indem Sie die Anweisung von Gethostname () anrufen:

Hostname = Socket.Gethostname ()

Geben Sie die Portnummer an, die der Server eine Verbindung zwischen Server und Client herstellen soll:

portnum = 12345

Binden Sie nun den Host mit dem Port ein, um eine Verbindung zu starten:

S.bind ((Hostname, portnum))

Der nächste Schritt besteht darin, auf die Client -Verbindung zu warten:

SocketModule.Hören Sie (5)

Stellen Sie schließlich eine Verbindung mit dem Kunden her:

während wahr:
a, adrs = s.akzeptieren()
print ('Verbindung von', ADRS)
A.Senden (B'Thanks zum Anschließen ')
A.schließen()

Das Folgende ist die clientseitige Codierung:

Um eine Verbindung zu starten, muss das Socket -Modul auf der Client -Seite importiert werden, wie es auf der Serverseite importiert wurde:

Steckdose als s importieren
SocketModule = Socket.Steckdose()

Befolgen Sie denselben Vorgang, erhalten Sie den Namen der lokalen Maschine und reservieren Sie den vom Server reservierten Port, um eine Verbindung herzustellen:

Hostname = Socket.Gethostname ()
portnum = 12345

Schließen Sie den Host nun mit dem Port an und stellen Sie eine Verbindung zwischen ihnen her:

SocketModule.verbinden (('127.0.0.1 ', portnum))
Druck (SocketModule.Recv (1024))
S.schließen()

Sobald Sie sowohl mit dem Client als auch mit der serverseitigen Codierung fertig sind, starten Sie sowohl Server als auch Client im Hintergrund, um die Ergebnisse anzuzeigen:

Nach einer erfolgreichen Verbindung sehen Sie die folgende Ausgabe:

Beispiel 3:

Lassen Sie uns ein weiteres Beispiel sehen, um ein klareres Verständnis dafür zu haben, wie sich der Server mit dem Client verbindet und wie der Server auf den Client hört.

Hier ist die serverseitige Codierung:

Befolgen Sie für die serverseitige Codierung den gleichen Prozess. Importieren Sie den Socket, erstellen Sie ein Socket -Modul, reservieren. Wenn Sie möglicherweise beobachtet werden, wird der Schleife der Zustand "If" hinzugefügt, um eine bestimmte Bedingung zu überprüfen. Siehe den folgenden Code:

Socket importieren
portnum = 60
Ipadrs = '127.0.0.1 '
Puffer = 30
SocketModule = Socket.Sockel (Sockel.Af_inet, Sockel.SOCK_STREAM)
SocketModule.binden ((iPadrs, portnum))
SocketModule.Hören Sie (1)
Conn, ADRS = SocketModule.akzeptieren()
print ('Die Adresse der Verbindung lautet:', ADRS)
während wahr:
Daten = conn.Recv (Puffer)
Wenn nicht Daten:
brechen
print ("Die empfangenen Daten sind:", Daten)
Con.Daten senden)
Con.schließen()

Das Folgende ist die clientseitige Codierung:

Der Prozess der Herstellung einer Verbindung auf der Clientseite ist wieder der gleiche. Importieren Sie den Socket, erstellen Sie ein Socket -Modul, reservieren Sie die Portnummer und verbinden Sie den Port mit dem Host:

Socket importieren
portnum = 5006
Ipadrs = '127.0.0.1 '
Puffer = 1024
Printmessage = "hi! Ich bin eine Nachricht vom Kunden.”
SocketModule = Socket.Sockel (Sockel.Af_inet, Sockel.SOCK_STREAM)
SocketModule.Connect ((iPadrs, portnum))
SocketModule.Senden (printmessage)
Data = SocketModule.Recv (Puffer)
SocketModule.schließen

Beachten Sie nun, dass der Client eine Nachricht an den Server sendet - „Hi! Ich bin eine Nachricht vom Kunden “. Diese Nachricht wird vom Server empfangen und wird gedruckt.

Nach der erfolgreichen Verbindung zwischen dem Server und dem Client finden Sie die folgende Ausgabe:

Abschluss

Dies ist ein grundlegender Überblick über die Socket -Programmierung in Python und ein kurzer Start mit der Implementierung. Es ist jedoch ein großes Thema und enthält viele Details mit komplexer Codierung. Sobald Sie mit diesen einfachen Programmen passen.