gpt4 book ai didi

java - JMdns ServiceListner 没有找到所有服务,

转载 作者:太空宇宙 更新时间:2023-11-04 08:16:29 26 4
gpt4 key购买 nike

您好,我创建了示例 jmdns serviceListner,当我运行它时,它应该继续列出它找到的服务,但是通过这个我的程序,它在运行时列出了​​一些服务,之后它不列出任何服务。而且我的 google chrome 浏览器中有 dns-sd,所以当我在 chrome 中浏览服务时,当时我的程序会列出其他服务,否则我的程序不会列出服务。我不明白为什么 ServiceListner 本身没有检测到任何后续事件。

public static void main(String[] args) throws Exception {
String type = "_my-app._tcp.local.";
Enumeration<NetworkInterface> ifc = NetworkInterface.getNetworkInterfaces();
while (ifc.hasMoreElements()) {
NetworkInterface anInterface = ifc.nextElement();
if (anInterface.isUp()) {
Enumeration<InetAddress> addr = anInterface.getInetAddresses();
while (addr.hasMoreElements()) {
InetAddress address = addr.nextElement();
final JmDNS jmdns = JmDNS.create(address, type);
ServiceListenerClass aClass = new ServiceListenerClass();
jmdns.addServiceListener(type, aClass);

}
}
}


}

public static class ServiceListenerClass implements ServiceListener {
public void serviceAdded(ServiceEvent event) {
event.getDNS().requestServiceInfo(event.getType(), event.getName(), true);
}

public void serviceRemoved(ServiceEvent event) {
System.out.println((count--) + " " + event.getInfo().getName());
}

public void serviceResolved(ServiceEvent event) {
System.out.println((count++) + " :Res: " + event.getInfo().getName() + " " + event.getInfo().getPort() + " " + event.getInfo().getApplication()
+ " " + event.getInfo().getDomain() + " " + event.getInfo().getKey());
}
}

最佳答案

我有一个类似的问题二。问题可能来自您的防火墙设置。

就我而言,javaw.exe 可以访问所有传入调用,但无法向任何人发送任何内容,因为防火墙阻止了它。

尝试关闭防火墙来测试您的程序,并确定这不是防火墙导致的问题。

关于java - JMdns ServiceListner 没有找到所有服务,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10321916/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com