dgr*_*rat 3 python sockets sendto
如果我想在我的udp套接字上写这样的话,我会收到错误.根据文件,应该没有问题.我不明白为什么bind()以相同的方式运行良好但sendto()失败.
udp_port = 14550
udp_server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
udp_server.bind(('127.0.0.1', udp_port))
udp_clients = {}
Run Code Online (Sandbox Code Playgroud)
错误:
udp_server.sendto('', ('192.0.0.1', 14550) )
socket.error: [Errno 22] Invalid argument
Run Code Online (Sandbox Code Playgroud)
错误表明您的参数无效.在阅读您的代码时,我可以说违规的参数是IP地址:
127.0.0.1192.0.0.1这是另一个网络上如果要将数据发送到IP地址的主机192.0.0.1,请将套接字绑定到同一网络上的本地网络接口,或者绑定到可以找到路由的网络192.0.0.1
我有一个(私有)本地网络192.168.56.*,如果我将套接字绑定到192.168.56.x(x是本地地址),我可以发送数据192.168.56.y(y是服务器的地址); 但如果我绑定127.0.0.1我就得到了IllegalArgumentException.