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—————————————————