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