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

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

不言
不言nach vorne
2018-10-08 17:13:282973Durchsuche

Dieser Artikel bietet Ihnen eine Einführung in die UDP-Kommunikation über Sockets in Python. Ich hoffe, dass er Ihnen als Referenz dienen wird.

UDP

TCP stellt eine zuverlässige Verbindung her und beide kommunizierenden Parteien können Daten in Form von 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 Code)

unterteilt Der UDP-Server

ähnelt TCP. Die Kommunikationsparteien, die UDP verwenden, sind ebenfalls 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 müssen dann nicht connect aufrufen (), direkt über sendto( ) Daten an den Server 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 die Server- bzw. Clienttests zu starten
Öffnen Sie den Server

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

Schließen Sie eine UDP-Kommunikation ab

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

Das obige ist der detaillierte Inhalt vonEinführung in die Socket-UDP-Kommunikation in Python (mit Code). 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