I am trying to use JmDNS to detect the addition and removal of devices on a network. Adding works fine, devices are detected as soon as their respective services are registered in JmDNS, but when a device is removed from the network, it is never registered in JmDNS.
I tried to run jmDns.list (serviceName) periodically, but it seems to always return cached values.
Can I remove remote JmDNS devices?
Here is the code I used to register the service listener (only the relevant parts):
Services:
JmDNS jmdns = JmDNS.create();
ServiceInfo service = ServiceInfo.create("_test._tcp.local.", "Test", 1234, 0, 0, false, "Test info");
jmdns.registerService(service);
Auditory Listener:
JmDNS jmDns = JmDNS.create();
jmDns.addServiceListener("_test._tcp.local.", new ServiceListener() {
@Override
public void serviceAdded(ServiceEvent event) {
System.out.println("Service added " + event.getInfo());
}
@Override
public void serviceRemoved(ServiceEvent event) {
System.out.println("Service removed " + event.getInfo());
}
@Override
public void serviceResolved(ServiceEvent event) {
System.out.println("Service resolved" + event.getInfo());
}
});
The serviceRemoved () method is never called, even if a previously registered device is no longer enabled. I am very grateful for any help I can solve in solving the problem.
: JmDNS , , . ?