Heim > Artikel > Backend-Entwicklung > Einführung in die Socket-UDP-Kommunikation in Python (mit Beispielen)
Dieser Artikel bietet Ihnen eine Einführung in die UDP-Kommunikation über Sockets in Python (mit Beispielen). Ich hoffe, er wird Ihnen als Referenz dienen.
UDP
TCP stellt eine zuverlässige Verbindung her und beide Kommunikationsparteien können Daten in Form eines Streams senden. Im Vergleich zu TCP ist UDP ein verbindungsloses Protokoll. Bei Verwendung des UDP-Protokolls ist kein Verbindungsaufbau erforderlich. Sie müssen lediglich die IP-Adresse und die Portnummer der Gegenpartei kennen, um Datenpakete direkt zu senden. Aber ich weiß nicht, ob es erreichbar ist.
Sehen wir uns an, wie man Daten über das UDP-Protokoll überträgt. Ähnlich wie bei TCP sind auch die Kommunikationsparteien, die UDP verwenden, in
Client und Server
Socket-Strukturdiagramm zur Implementierung der UDP-Kommunikation
unterteilt UDP-Server
Ähnlich wie bei TCP werden auch die Kommunikationsparteien, die UDP verwenden, in Clients und Server unterteilt. Der Server muss zunächst den Port binden. Es besteht jedoch keine Notwendigkeit, die Verbindung des Clients zu überwachen
#server import socket #创建Socket时, SOCK_DGRAM 指定了这个Socket的类型是UDP。 server = socket.socket(type=socket.SOCK_DGRAM) server.bind(('192.168.1.165',7890)) #不需要调用 listen() 方法, 而是直接接收来自任何客户端的数据 print('服务端已开启7890端口,正在等待被连接...') #recvfrom() 方法返回数据和客户端的地址与端口, 这样, 服务器收到数据后, #直接调用 sendto() 就可以把数据用UDP发给客户端 data,address = server.recvfrom(1024) print("client>>",data.decode('utf-8')) print("客户端连接的socket地址:", address) server.sendto(b'drink more water!',address) server.close()
UDP-Client
Wenn der Client UDP verwendet, erstellen Sie zunächst noch einen UDP-basierten Socket und dann dort Es ist nicht nötig, connect( ) aufzurufen, sondern Daten direkt über sendto() an den Server zu senden
import socket #创建Socket时, SOCK_DGRAM 指定了这个Socket的类型是UDP。 client = socket.socket(type=socket.SOCK_DGRAM) send_data =b'hello sheenstar' client.sendto(send_data,('192.168.1.165',7890)) re_Data,address = client.recvfrom(1024) print('server>>',re_Data.decode('utf-8')) client.close()
Testergebnisse
Verwenden Sie zwei Befehlszeilen, um den Server und den Client zu starten Tests bzw.
Starten Sie den Server
Schließen Sie eine UDP-Kommunikation ab
Das obige ist der detaillierte Inhalt vonEinführung in die Socket-UDP-Kommunikation in Python (mit Beispielen). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!