我有一个bacnet应用程序,它将消息广播到所有连接的设备。当我使用地址10.9.x.255时,它可以工作并且设备能够获得响应,但是当我使用全局广播255.255.255.255时,数据包没有到达它必须到达的设备。
这可能是什么原因?我可以使用地址10.9.x.255,但我想知道其背后的原因。
在另一台计算机上,它可以使用全局广播地址,但不能在特定计算机上使用。两台计算机都在Windows 10上运行。
预先感谢
答案 0 :(得分:0)
可能是您要连接的设备不在您的本地网络中吗?
只是为了澄清区别:
编辑:虽然您似乎可以发送定向广播,但由于存在DoS攻击的风险,许多路由器都禁用了定向广播(请参阅RFC 2644 Specification)。
答案 1 :(得分:0)
在Windows上将数据包发送到255.255.255.255时,它仅从一个网络接口传输出去。这是Windows IPv4网络堆栈中的错误/设计缺陷。
如果它在一台计算机上为您工作,那么您很可能很幸运,Windows从其发送数据包的那个接口就是您正在使用的那个接口。
参考文献: