Python af_inet Socket

Python af_inet Socket
„Ein Netzwerk kann so eingerichtet werden, dass zwei Knoten mithilfe der Socket -Programmierung miteinander interagieren können. Während der andere Sockel an einen anderen erreicht wird, um einen Steckdosen (Knoten) zu verknüpfen, hört man einen bestimmten Port an einer IP -Adresse an. Während der Verbindung des Clients zum Server erstellt der Server den Listener -Socket. Sie bilden die Grundlage des Online -Surfens. Der allererste Schritt in der Socket -Programmierung besteht darin, das Socket -Paket zu integrieren und eine einfache Sockel.

AF_Inet ist das allererste Argument, während Sock_stream das nächste wäre. AF_INET repräsentiert die IPv4 -Adressfamilie. Im Gegensatz zu IPv6 zu AF INET6 bezieht sich AF INET auf den Zweig oder den Bereich. Die verbindungsorientierte TCP-Kommunikation wird als Sock_stream bezeichnet. In diesem Artikel werden wir uns die Verwendung des AF_INET -Parameters in der Socket -Programmierung von Python innerhalb des Spyder -Tools ansehen.”

Beispiel 1

Wir haben mit dem allerersten Beispiel dieses Artikels angefangen, um eine sichere Verbindung zwischen dem Socket und dem Host -Server zu erstellen. Dafür haben wir das Socket -Modul von Python in der ersten Zeile und das "SYS" -Modul in der zweiten Zeile mit dem Schlüsselwort "Import" importieren. Danach haben wir das Konzept der Ausnahmebehandlung verwendet, indem wir in diesem Code zweimal die Versuchserklärung von Python verwendet haben.

Erstens wurde die Anweisung für die Try -Anweisung erstellt, die die Funktion „Socket“ eines Socket -Moduls in Python mit den beiden Parametern AF_INET und SOCK_STREAM mit der Funktion „Socket“ erstellt hat. Das AF_Inet zeigt, dass der Socket die IPv4 -Familie verwendet, und das SOCK_STR -EAM wurde verwendet, um das TCP -Protokoll für den Verbindungsstrom zu verwenden. Die Druckfunktion hat den einfachen Satz verwendet, um an der Konsole des Spyder -Tools auszudrucken, um anzuzeigen, dass die Socket -Erstellung erreicht wurde.

Wenn der Versuch, die IP -Adresse zu erhalten. Die Ausnahme der Ausnahme wurde verwendet, um den Fehler an der Konsole anzuzeigen, wenn die Erstellung einer Steckdose den Sockel erfolglos verwendet hat.Fehlerobjekt und speichern Sie es in Variable "E". Nach der Aussage von Versuch () haben wir die Portnummer „P“ für den Socket initialisiert, ich.e., Der Standardport der Socket -Verbindung zu einem Webserver beträgt 80. Der nächste Schritt besteht.

Dazu haben wir die Anweisung „Try-Except“ erneut im Python-Code verwendet. Die Versuch -Anweisung wurde mit der Verwendung der Funktion der GetHostByName () des Socket -Modul. Wenn die IP -Adresse erfolgreich gefunden wurde, wird die Ausnahme der Ausnahme nicht ausgeführt und die nächsten Codezeilen fortgesetzt. Andernfalls wird die Ausnahme -Anweisung das "Gaierror" des Socket -Modul () ”Funktion zur Beendigung des Programms momentan gleich.

Nachdem beide Anweisungen für Try-Except-Anweisungen die gereine IP-Adresse als „HIP“ und die Portnummer „P“ verwendet haben, um den Socket mit dem Google-Host zu verbinden.e., Verwenden der Funktion Connect () des Socket -Moduls. Die Druckanweisung der endgültigen Zeile zeigt, dass der Socket ordnungsgemäß mit dem Google -Host verbunden ist. Lassen Sie uns unseren Code im Spyder speichern und ausführen, um zu sehen, was wir als Gegenleistung erhalten haben.

Socket importieren
Importsystem
versuchen:
S = Socket.Sockel (Sockel.Af_inet, Sockel.SOCK_STREAM)
drucken ("erreichte die Socket -Kreation!"))
außer Sockel.Fehler wie E:
print ("Fehler beim Erstellen von Socket, Fehler: %s" %(e))
p = 80
versuchen:
Hip = Socket.Gethostbyname ('www.Google.com '))
außer Sockel.Gaierror:
drucken ("Erhalten Sie Fehler beim Auflösen des Hosts!"))
sys.Ausfahrt()
S.verbinden ((hip, p))
Print ("Socket wurde erfolgreich mit Google verknüpft .. !"))

Nachdem wir es ausgeführt hatten, erhielten wir die Erfolgsnachrichten auf unserem Spyder -Konsolenbildschirm. Die erste Nachricht wurde gezeigt, dass die Socket perfekt erstellt wurde, und die zweite Zeile hat gezeigt, dass die Verbindung ebenfalls hergestellt wurde.

Beispiel 02

Ein Kommunikationssystem namens UDP sendet einzelne Pakete über das Web ohne Zusicherungen einer rechtzeitigen Lieferung oder der garantierten Ankunft. Das Zitat des Tages ist ein solcher Service, der UDP (QOTD) einsetzt. Wir haben dieses Programm mit dem Import des Socket -Moduls gestartet. Danach haben wir den Kontext -Manager „mit“ verwendet, um einen neuen Socket als „SOC“ zu erstellen, der die Parameter AF_Inet und Sock_dgram in der Funktion "Socket () des Socket -Moduls verwendet.

Danach haben wir die Variable „Text“ verwendet, um eine leere Nachricht zu initialisieren. Der QOTD -Dienst arbeitet mit zufälligen Informationen an den Socket. Wenn wir eine leere Nachricht übermitteln, beantwortet sie nur ein Angebot an. Wir verwenden binäre Sequenzen für TCP/UDP -Kommunikation. Die Portnummer wurde auf 17 festgelegt, um Anführungsdaten zu erhalten. Wir haben die URL eines Hosts und die Portnummer verwendet, um die IP -Adresse „ADR“ des jeweiligen Hosts zu erhalten. Diese „ADR“ -Ade und die leere Nachricht „Text“ wurden an die Funktion "sendTo () des Socket -Moduls übergeben, mit dem" SOC "-Djekt, um sie an den jeweiligen Host zu senden.

Die Funktion „recvfrom“ ist die Methode, die von UDP -Sockets verwendet wird, um Informationen abzurufen. Die Puffergröße dient als Parameter. Die zurückgegebene Antwort ist ein Duo (Daten, Adresse), in dem der Parameter „Adresse“ die Kennung des Sockets ist, der die Daten lieferte, und der Parameter „Info“ ist eine Byte -Sequenz, die die erhaltenen Daten enthält, die erhalten wurden. Die Print -Anweisung verwendet die Funktion „Decodode“, um die Informationen zu dekodieren und anzuzeigen, die wir erhalten haben.

Socket importieren
mit Steckdose.Sockel (Sockel.Af_inet, Sockel.SOCK_DGRAM) als SOC:
Text = B "
p = 17
adr = ("djxmmx.Netz ", p)
SOC.Sendento (Text, ADR)
Info, Adresse = SOC.recvfrom (1024)
Druck (Info.dekodieren())

Wenn wir dieses Programm ausführen, haben wir das Angebot als Gegenleistung erhalten.

Abschluss

In diesem Artikel geht es um die Verwendung der AF_INET -Familie von Sockelmodulen in Python. Wir haben zwei Beispiele ausprobiert, um einen Socket zu erstellen, ihn mit dem Host zu verbinden, eine leere Nachricht zu senden und die Angebote vom Host zu erhalten.