2

我是这里的新手。在查看 JmDNS 库(3.4.1)时,我无法清楚地了解 JmDNS 和 JmmDNS 实例之间的区别。我使用了一个 JmmDNS 实例来发现服务,它在我的应用程序中正常工作。然后,我想将我的代码转换成一个包,但是,没有任何效果。然后,如果我在我的包中使用 JmDNS 的实例,我可以成功地发现服务。如果有人为我更清楚地说明这一点,我将不胜感激。此外,根据文档,使用 JmmDNS,我们有一个 NetworktopologyListener,因此我们保证服务始终更新。JmDNS 实例也能保证这一点吗?出于这个原因,我正在犹豫是否要使用我的捆绑包(服务可能不会随着网络的变化而更新)

谢谢你的帮助

4

1 回答 1

2

如果您查看文档,JmmDNS 的类文档说:

Java 多宿主组播 DNS

为在此计算机上找到的每个 InetAddress 使用基础 JmDNS 实例。

此类将监控网络拓扑变化,并根据需要创建或销毁 JmDNS 实例。维护服务注册是您的责任(提示:使用 NetworkTopologyListener)。

一个JmDNS实例绑定到一个特定的实例Interface,并执行在该单一接口上维护 mDNS 响应程序所需的一切,包括服务发现和公告。

FWIW,我最终写了自己的NetworkTopologyListener作品JmmDNS和类似的作品,因为提供的那些在我的经验中效果不佳。接口发现在早期 Windows 7 上的某些 JVM v7 版本中根本不起作用,并且它与混合 IPv4 和 IPv6 的情况相混淆。这两个当时是实验性的。

于 2012-07-17T15:38:07.993 回答