JAVA:广播UDP数据包时检测 self

标签 java sockets udp broadcast loopback

我有一个正在广播 UDP 数据包的线程。我有另一个正在收听相同广播的线程。这样我的应用程序就可以检测网络上的其他实例。但是我有一个问题,当一个实例广播时,它会自行选择并认为它本身是另一个节点。我的问题是您如何可靠地确定数据包来自您自己,以便可以忽略它?我说可靠是因为我知道您可以在您的套接字上调用 setLoopbackMode(true) 来防止环回,但根据 api 文档,这种方法并不总是有效?

最佳答案

检查源 IP 地址。 如果它相当于您自己的地址,请丢弃包裹。如果您无法确定从哪个接口(interface)发送,请务必检查所有可能的源地址。

关于JAVA:广播UDP数据包时检测 self ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9655279/

相关文章:

java - 客户端无法在java聊天程序中向服务器发送消息

go - 并发 |协程 |语言 |缓冲阅读器

java - UDP - 多线程

javascript - Android int 值的 React-Native 模块返回晚了吗?

java - Struts2 String[] 参数而不是 Long

java - 递归选择排序 (Java Eclipse Neon 2)

java - 如何在满足一定条件的情况下迭代节点列表并替换内容?

c# - 客户端服务器身份验证

javascript - HTTP 连接的 chrome.sockets.tcp.onReceiveError

java - 一旦选择器返回,我可以从 channel 读取多少和多长时间?