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