JmDNS를 사용하여 네트워크에서 장치 추가 및 제거를 감지하려고합니다. 추가 작업은 정상적으로 작동하지만 각 서비스가 JmDNS에 등록 되 자마자 장치가 검색되지만 장치가 네트워크에서 제거되면 JmDNS에 등록되지 않습니다.JmDNS 장치 제거 감지
정기적으로 jmDns.list (serviceName)을 호출하려했지만 항상 캐시 된 값을 반환하는 것처럼 보입니다.
JmDNS 레지스터를 제거한 장치를 만들 수 있습니까? 여기
내가 서비스 및 서비스 리스너 (단지 관련 부분)을 등록하는 데 사용되는 코드입니다 :서비스 :
JmDNS jmdns = JmDNS.create();
ServiceInfo service = ServiceInfo.create("_test._tcp.local.", "Test", 1234, 0, 0, false, "Test info");
jmdns.registerService(service);
서비스 청취자 :
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());
}
});
방법 serviceRemoved() 이전에 등록한 장치의 전원이 더 이상 켜지지 않아도이 호출되지 않습니다. 문제를 해결할 수있는 도움에 대해 매우 감사드립니다.
업데이트 : JmDNS는 장치가 네트워크에 없지만 30 분 후에 만 파악합니다. 이 기간을 더 짧게 할 수 있습니까?