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

时间:2012-03-11 13:18:46

标签: java sockets udp broadcast loopback

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

1 个答案:

答案 0 :(得分:3)

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