首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单个网卡上的多个IP: UDP广播

单个网卡上的多个IP: UDP广播
EN

Stack Overflow用户
提问于 2013-01-24 09:06:40
回答 1查看 608关注 0票数 1

问题:

客户端1侦听子网A的IP。

服务器向子网B发送广播消息。

客户端1也通过其位于子网A中的IP读取此消息。

  • 如果消息不是广播而是单播,则不存在这种情况。

我正在尝试编写一个Java应用程序,它侦听在单个网络接口上定义的一些IP和端口。下面可以找到我的网络配置的一个示例:

netsh interface ip>show address

Configuration for interface "Local Area Connection"

代码语言:javascript
复制
 `DHCP enabled:                         No`
代码语言:javascript
复制
 `IP Address:                           22.108.131.1`
代码语言:javascript
复制
 `SubnetMask:                           255.255.255.0`
代码语言:javascript
复制
 `IP Address:                           22.108.132.1`
代码语言:javascript
复制
 `SubnetMask:                           255.255.255.0`
代码语言:javascript
复制
 `IP Address:                           22.108.133.1`
代码语言:javascript
复制
 `SubnetMask:                           255.255.255.0`
代码语言:javascript
复制
 `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网络处理的本质?

EN

回答 1

Stack Overflow用户

发布于 2013-01-25 00:52:13

以255结尾的IP是一个广播消息,将被网络中的每个节点听到。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14497486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档