Heim  >  Artikel  >  Backend-Entwicklung  >  Einführung in die Socket-UDP-Kommunikation in Python (mit Beispielen)

Einführung in die Socket-UDP-Kommunikation in Python (mit Beispielen)

不言
不言nach vorne
2018-10-13 16:43:434335Durchsuche

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

Einführung in die Socket-UDP-Kommunikation in Python (mit Beispielen)

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

Einführung in die Socket-UDP-Kommunikation in Python (mit Beispielen)

Schließen Sie eine UDP-Kommunikation ab

Einführung in die Socket-UDP-Kommunikation in Python (mit Beispielen)

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen