在 ZeroConf 浏览器中找不到 JmDNS 服务



我正在用Java开发一个Web应用程序(使用Spark(,我希望它使用JmDNS能够在我的Android应用程序中找到此服务器。我按照 JmDNS 页面中的步骤进行服务注册,我的代码如下所示:

try {
// Create a JmDNS instance
JmDNS jmdns = JmDNS.create(InetAddress.getLocalHost());
// Register a service
ServiceInfo serviceInfo = ServiceInfo.create("_http._tcp.local.", "smart_dom", 4567, "path=index.html");
jmdns.registerService(serviceInfo);
} catch (IOException e) {
System.out.println(e.getMessage());
} catch (InterruptedException e) {
e.printStackTrace();
}

我实现了有关在我的Android应用程序中发现服务的部分,但它什么也找不到。我根据这个问题做了一些更改,甚至下载了ZeroConf浏览器(它依赖于JmDNS(,但即使是这个应用程序也看不到我的Web应用程序。

我的服务器在Windows PC上运行。我知道Windows不支持mDNS,但Java应该独立于平台。我能做错什么?

如果有人想知道出了什么问题,我找到了答案。

就我而言,问题出在JmDNS jmdns = JmDNS.create(InetAddress.getLocalHost());,尤其是返回 127.0.0.1 而不是我的 LAN 适配器 wi-fi 地址的InetAddress.getLocalHost()。使用此解决方案解决了该问题。它基于通过NetworkInterface.getNetworkInterfaces()寻找正确的接口。

最新更新