我使用 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
最佳答案
我在您链接的 Python 文档中注意到,recvfrom
返回与您的代码正在查找的内容(字节、地址)相似的值,并且与 Windows 兼容
socket.recvfrom(bufsize[, flags])
关于Python:在 Windows 上获取 UDP 广播/socket.recvcmsg() 的发送者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46708337/