3

我在尝试在 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 已关闭,即使使用“以管理员身份运行”它也不起作用。不知何故,我不认为这是一个实际的权限问题。

4

1 回答 1

5

你似乎错过了一个

s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)

套接字创建后。它使套接字能够广播。

它有帮助吗?

于 2013-06-04T12:35:04.243 回答