Служба JmDNS не найдена в браузере ZeroConf
Я занимаюсь разработкой веб-приложения на Java (с помощью 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), но даже это приложение не видит мое веб-приложение.
Мой сервер работает на ПК с Windows. Я знаю, что Windows не поддерживает mDNS, но Java должна быть независимой от платформы. Что я могу делать не так?
1 ответ
Если кому-то было интересно, что не так, я нашел ответ.
В моем случае проблема была с JmDNS jmdns = JmDNS.create(InetAddress.getLocalHost());
особенно с InetAddress.getLocalHost()
который вернул 127.0.0.1 не мой сетевой адаптер Wi-Fi-адрес. Проблема была решена с помощью этого решения. Он основан на поиске правильного интерфейса через NetworkInterface.getNetworkInterfaces()
,