我是新手。在查看JmDNS库(3.4.1)时,我无法清楚地了解JmDNS和JmmDNS实例之间的区别。我使用JmmDNS的一个实例来发现服务,它在我的应用程序中正常工作。然后,我想将我的代码转换为一个包,然而,没有任何作用。然后,如果我在我的包中使用JmDNS的实例,我可以成功地发现服务。如果有人让我更清楚,我将不胜感激。 此外,根据文档,使用JmmDNS,我们有一个NetworktopologyListener,因此我们保证服务始终更新。 JmDNS实例也能保证这一点吗?由于这个原因,我对使用我的软件包犹豫不决(服务可能不会随着网络的变化而更新)
感谢您的帮助
答案 0 :(得分:2)
如果查看文档,JmmDNS的类文档说:
Java多宿主多播DNS
为此计算机上的每个InetAddress使用基础JmDNS实例。
这门课会监听 网络拓扑发生变化,并将创建或销毁JmDNS实例 按要求。维护服务是您的责任 注册(提示:使用NetworkTopologyListener)。
JmDNS
实例绑定到特定的Interface
,并执行在该单一接口上维护mDNS响应者所需的一切,包括服务发现和公告。
FWIW,我最终编写了自己的NetworkTopologyListener
和JmmDNS
工作,因为根据我的经验,所提供的工作效果不佳。在早期的Windows 7上,某些JVM v7版本中的接口发现根本不起作用,并且它与混合的IPv4和IPv6情况相混淆。那两个当时是实验性的。