问题:
客户端1侦听子网A的IP。
服务器向子网B发送广播消息。
客户端1也通过其位于子网A中的IP读取此消息。
我正在尝试编写一个Java应用程序,它侦听在单个网络接口上定义的一些IP和端口。下面可以找到我的网络配置的一个示例:
netsh interface ip>show address
Configuration for interface "Local Area Connection"
`DHCP enabled: No` `IP Address: 22.108.131.1` `SubnetMask: 255.255.255.0` `IP Address: 22.108.132.1` `SubnetMask: 255.255.255.0` `IP Address: 22.108.133.1` `SubnetMask: 255.255.255.0` `InterfaceMetric: 0`我正在打开数据报通道并将它们绑定到这些IP地址。对于每个IP,我有不同的线程来响应来自通道的消息。
现在问题是,服务器将UDP广播消息发送到
22.108.131.255 22.108.132.255 诸若此类。
但是,例如,在为侦听22.108.131.1而创建的线程中,我正在接收发送到22.108.132.255的广播消息。我使用Wireshark检查传入消息,它告诉我消息以22.108.132.255的形式出现,但是在我的应用程序中,我看到消息的端点是22.108.131.1,即侦听线程。
起初,我认为我的实现是错误的,但更令人惊讶的问题是传入的非广播消息。我的意思是,如果消息的目的地是22.108.131.1,那么22.108.132.1就不会收到它,这显然是应该的。但是我不明白的是,当它是关于广播信息的时候,为什么它不会像它应该运行的那样运行。
我不确定这个问题是否是由windows多IP配置引起的。但我所观察到的是操作系统将子网-A的广播消息传送给子网-B。
另一件可能是线索的事情是,我只谈到了上面的22.108.131.1和22.108.132.1,尽管我也定义了22.108.133.1。如果我不为该IP打开数据报通道,我仍然可以从其他IP读取该子网的广播消息。
我是不是漏掉了什么?还是Windows网络处理的本质?
发布于 2013-01-25 00:52:13
以255结尾的IP是一个广播消息,将被网络中的每个节点听到。
https://stackoverflow.com/questions/14497486
复制相似问题