Python–socket中的UDP
- 2019 年 10 月 8 日
- 筆記
在socket中除了tcp還有UDP,如果說tcp是一對一,則udp則是一對多,udp的服務端可以接收多個客戶端,也可以實現文件傳輸之類的,不過這裡簡略的說一下使用udp的方法。
udp的服務端
from socket import * ip_port = ('127.0.0.1', 8000) back_log = 5 buffer_size = 1024 ss = socket(AF_INET, SOCK_DGRAM) ss.bind(ip_port) while 1: data, addr = ss.recvfrom(buffer_size) print(data) print(addr) ss.sendto(data, addr) ss.close()
比起tcp簡單一點,只需要綁定ip和端口便可以了,不同鏈接客戶端,然後可以直接接收客戶端發送來的數據了。
結果:
b'123' ('127.0.0.1', 63620)
這裡接收的東西有,data和addr,一個是接收的數據的的內容第二個是接收的ip和端口,然後對接收的數據decode('utf-8'),即可提取出內容
print(data.decode('utf-8'))
輸出:
123 ('127.0.0.1', 63620)
客戶端則是更簡單了
from socket import * ip_port = ('127.0.0.1', 8000) back_log = 5 buffer_size = 1024 cs = socket(AF_INET, SOCK_DGRAM) while 1: msg = input('請輸入:') cs.sendto(msg.encode('utf-8'), ip_port) data ,addr= cs.recvfrom(buffer_size) print("服務器發來:", data) cs.close()
直接就可以用socket發送數據了,
udp的話如果客戶端關閉了,服務端還是可以繼續運行,然後再打開客戶端還是可以繼續鏈接到服務端的
人生不易,我用python—————————————————