【发布时间】:2015-02-08 07:20:20
【问题描述】:
为什么我不能通过 UDP 套接字发送数据,当我将它绑定到例如127.0.0.2,而不是 127.0.0.1?接收似乎有效
这是我的接收端
>>> import socket
>>> sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM )
>>> sock.bind(("127.0.0.1", 6666))
>>> sock.recvfrom(1024)
('01', ('127.0.0.1', 7777))
这就是我发送数据的方式
>>> sock = socket.socket( socket.AF_INET, socket.SOCK_DGRAM )
>>> sock.bind(('127.0.0.1', 7777))
>>> sock.sendto(b'01',('127.0.0.1',6666))
2
现在如果在发送中我说喜欢
>>> sock = socket.socket( socket.AF_INET, socket.SOCK_DGRAM )
>>> sock.bind(('127.0.0.2', 7777))
>>> sock.sendto(b'01',('127.0.0.1',6666))
2
接收端没有任何反应。 sendto 返回 2,就像使用 0.1 地址一样,但没有任何东西到达接收端。更奇怪的是,如果我绑定/接收 127.0.0.2/6666,它可以接收数据就好了。但同样,如果我从 127.0.0.2 发送数据,则不会
这是 Python 2.7.5,我在 Windows 7 上运行它。我正在尝试构建 MT 环境,我可以在同一台计算机内模拟到多个 IP 地址的连接。我不知道这是 python 功能还是 windows 或者可能是用户错误...
【问题讨论】:
标签: python windows sockets udp