JmDNS Device Removal Detection

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 , , . ?

+4
1

serviceRemoved() , . JmDNS , . , JmDNS , - (, 30 ). , , - . . , JmDNS - , .

+1

All Articles