UDP-Paket in Python senden

Zeeshan Afridi 21 Juni 2023
UDP-Paket in Python senden

Heute lernen wir das User Datagram Protocol (UDP) kennen und sehen, wie wir UDP-Pakete mit der Python-Programmierung senden können.

UDP-Paket in Python senden

Das User Datagram Protocol (UDP) und TCP/IP funktionieren unterschiedlich. UDP ist ein nachrichtenorientiertes Protokoll, im Gegensatz zu TCP, das ein streamorientiertes Protokoll ist, das sicherstellt, dass alle Daten in der richtigen Reihenfolge übertragen werden.

Das Einrichten eines UDP-Sockets ist etwas einfacher, da UDP keine lange Verbindung erfordert. Andererseits ist im Gegensatz zu TCP die Zustellung von UDP-Nachrichten nicht gewährleistet, und sie müssen in ein einzelnes Paket passen.

Wie können wir das in Python machen? Python hat ein eingebautes Modul namens socket, das Sie importieren müssen.

import socket

Nachdem wir das socket-Modul importiert haben, müssen wir die Portnummer und die IP-Adresse angeben, an die wir versuchen werden, UDP-Nachrichten zu senden.

IP = "127.0.0.1"
PORT = 5003
Message = "Info"

Es ist an der Zeit, den socket zu bauen, über den wir unsere UDP-Nachricht an den Server senden, nachdem wir diese wenigen Variablen angegeben haben.

Sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
Sock.sendto(Message, (IP, PORT))

Sie müssen zwei Dateien erstellen; client.py und server.py. Sowohl die Client- als auch die Serverdateien müssen sich in den entsprechenden Server- und Clientsystemen befinden.

Nachdem das Clientprogramm erstellt wurde, besteht der nächste Schritt darin, das Serverprogramm zu erstellen, das die angegebene IP-Adresse und Portnummer auf UDP-Pakete überwacht.

Beachten Sie, dass das Client-Python-Skript vor diesem Server ausgeführt werden muss, andernfalls schlägt das Client-Python-Skript fehl.

Wir können einen weiteren socket erstellen, der genau dem socket ähnelt, den wir in unserer Client-Anwendung erstellt haben, nachdem wir das socket-Modul importiert und unsere IP-Adresse und Portnummer angegeben haben.

Beispielcode für die Datei Server.py:

import socket

IP = "127.0.0.1"
PORT = 5003
MESSAGE = "The meeting is From 10 pm."

print(f"sending information")
print(f"{MESSAGE} to {IP}:{PORT}")


sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.sendto(MESSAGE.encode(), (IP, PORT))

Ausgang:

sending information
The meeting is From 10 pm. to 127.0.0.1:5003

Sie sollten auch den Code schreiben, um Ihr Skript kontinuierlich auf diese Verbindung warten zu lassen, bis sie beendet wird, sobald Sie Ihren Server-socket erstellt haben.

Es hat die Form einer einfachen while-Schleife, wie unten gezeigt:

Beispielcode für die Datei Client.py:

import socket

IP = "127.0.0.1"
PORT = 5003

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind((IP, PORT))
print(f"start listening to {IP}:{PORT}")
while True:
    data, addr = sock.recvfrom(1024)
    print(f"received message: {data}")

Ausgang:

start listening to 127.0.0.1:5003
received message: The meeting is From 10 pm.

Auf diese Weise können wir UDP-Pakete in Python senden.

Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn