在用python中的socket模块进行udp变成时 , 一直出现这个错误
下面先把错误代码贴出来
server:
import socket import random,time s = socket.socket(socket.AF_INET , socket.SOCK_DGRAM) host = '127.0.0.1' port = 21567 addr = (host , port) if __name__ == '__main__': s.bind(addr) while True: time.sleep(5) data = random.random() print('sendto data: %s'%str(data)) s.sendto(str(data),addr) s.close()
client
import socket s = socket.socket(socket.AF_INET , socket.SOCK_DGRAM) while True: data,addr = s.recvfrom(1024) q.put(data) time.sleep(random.random())
这个代码在运行的时候 , 一直出现 errno 10022 , 找了一个下午才找出
原因:
当一个udp需要接受数据时 , 首先要让操作系统知道,这个程序所在的端口 , 也就是需要绑定
而我是通过服务器进行发数据 , 客户端进行接数据 , 因此,client就不知道哪个端口是属于自己的
也就是一直出现这个错误的原因
时间: 2024-10-11 15:42:16