Windows 多宿系统上的UDP广播
我正在从事一个项目,该项目使用UDP广播发现/配置远程设备。这些设备可能尚未配置IP地址,至少没有,以匹配它们所连接的网络。目前,我们使用一个目标地址为Windows 多宿系统上的UDP广播,windows,networking,windows-vista,udp,broadcast,Windows,Networking,Windows Vista,Udp,Broadcast,我正在从事一个项目,该项目使用UDP广播发现/配置远程设备。这些设备可能尚未配置IP地址,至少没有,以匹配它们所连接的网络。目前,我们使用一个目标地址为255.255.255.255的sendto。这在大多数情况下都可以正常工作,但在具有多个NIC的Vista机器上,广播似乎只发送其中一个接口。如何让Vista将广播发送到所有接口?我个人从未见过任何系统为每个接口生成一个数据包来响应单个发送到调用 更好的选择是枚举网络接口,确定正确的链路本地广播,并通过每个接口单独发送一个数据包。枚举接口,然后
255.255.255.255
的sendto
。这在大多数情况下都可以正常工作,但在具有多个NIC的Vista机器上,广播似乎只发送其中一个接口。如何让Vista将广播发送到所有接口?我个人从未见过任何系统为每个接口生成一个数据包来响应单个发送到
调用
更好的选择是枚举网络接口,确定正确的链路本地广播,并通过每个接口单独发送一个数据包。枚举接口,然后在每个接口上发送一次数据包 我们有完全相同的问题,只是我们不能使用子网广播,因为我们要配置它们。如果一个设备有一个错误的IP(超出我们的范围),发送一个子网广播到它将永远不会被它的IP堆栈接受。
问题很严重,除非我们允许DHCP…我不确定链接本地地址是否有效,因为不是所有设备都为链接的子网配置了IP。实际上,我们也有同样的问题