JAVA:在广播UDP数据包时检测自身



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

检查源IP地址。如果它与您自己的地址相当,请丢弃该包。如果无法确定要从哪个接口发送,请确保检查所有可能的源地址。

最新更新