加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – UDP套接字sendto()函数

发布时间:2020-12-20 12:08:12 所属栏目:Python 来源:网络整理
导读:如果我想在我的udp套接字上写这样的话,我会收到错误. 根据文件,应该没有问题. 我不明白为什么bind()以相同的方式运行良好但sendto()失败. udp_port = 14550udp_server = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)udp_server.bind(('127.0.0.1',udp_p
如果我想在我的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 = {}

错误:

udp_server.sendto('',('192.0.0.1',14550) )
socket.error: [Errno 22] Invalid argument

解决方法

错误表明您的参数无效.在阅读您的代码时,我可以说违规的参数是IP地址:

>您将套接字绑定到127.0.0.1
>您尝试将数据发送到另一个网络上的192.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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读