尝试在Windows 7中广播UDP数据包时出现此错误。
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.sendto("hello".encode("ascii"), ("<broadcast>", 5868))
如果我改为255.255.255.255,同样的交易。如果我输入特定的IP地址(包括127.0.0.1),它可以正常工作。相同的方法(即,将数据包发送到255.255.255.255)可以在.NET中使用。
这不受Windows防火墙的影响(尝试将其关闭)。我是管理员,UAC已关闭,即使以“以管理员身份运行”,它也无效。不知何故,我认为这不是一个实际的权限问题。
答案 0 :(得分:4)
你似乎错过了
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
创建套接字后。它使套接字能够广播。
有帮助吗?