在Windows 7上发送UDP广播

时间:2010-07-12 14:08:56

标签: windows-7 winsock

我的PC有两个连接到不同网络的网卡(多宿主网络设置)。我想在两个网络上发送UDP广播帧。帧的发送方IP地址必须是适配器的IP地址,用于发送帧。目标地址应为LIMITED BROADCAST地址。

客户应用程序不应以管理权限运行(UAC不可加入)。

如何将这些UDP帧发送到LIMITED BROADCAST地址(255.255.255.255)? 如何将这些帧发送到NETWORK BROADCAST地址(x.y.z.255)?

我知道如何使用原始套接字执行此操作。但是原始套接字只能与管理权限一起使用。

1 个答案:

答案 0 :(得分:3)

你不能只打开两个普通的UDP套接字并将一个绑定到每个接口地址,然后简单地发送到广播地址吗?

据我所知,这将处理两个网络上的发送,并确保发送的数据包具有正确的IP地址。如果将单个套接字绑定到INADDR_ANY,它将无法工作,当然,如果机器中只有一个网络适配器,它将起作用。要创建一个完整的解决方案,最好迭代可用的地址并为每个地址创建一个套接字,绑定到每个地址并从每个地址发送。