【发布时间】:2018-03-24 07:35:27
【问题描述】:
我使用socket.recvmsg() 来获取UDP 广播消息的数据和发送者的IP 地址。这在 Linux 上运行良好,但这种方法在 Windows (Python 3.3) 上不可用。如何获取发件人的IP地址?
from socket import *
fd = socket(AF_INET, SOCK_DGRAM)
fd.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
fd.setsockopt(SOL_SOCKET, SO_BROADCAST, 1)
data, _, _, addr = fd.recvmsg(4096) # <- how to achieve this without recvmsg?
host, upd_port = addr
【问题讨论】:
-
您检查过 Windows 防火墙吗?
-
@uphill 这与连接无关。当然我可以使用 socket.recv() 接收广播,但结果只包含 UDP 有效负载。
-
你有代码和平吗?
-
@uphill 查看我的编辑
-
我认为在 Windows 上,
recvfrom应该可以工作?
标签: python windows sockets udp broadcast