Înregistrarea / Deînregistrarea unui Serviciu

Pentru înregistrarea unui serviciu, se apelează metoda registerService(ServiceInfo) din clasa JmDNS, ulterior serviciul putând fi accesat din cadrul altor mașini fizice / dispozitive mobile.

Pentru deînregistrarea unui serviciu, se poate apela una din metodele unregisterService(ServiceInfo), respectiv unregisterAllServices() din clasa JmDNS.


Note

Aceste metode primesc ca parametru un obiect de tip ServiceInfo, ce reține informații precum denumirea și tipul serviciului, adresa și portul mașinii / dispozitivului pe care va fi disponibil (ce pot fi preluate, din cadrul unui obiect de tip ServerSocket).


public void registerNetworkService() throws Exception {
  chatServer = new ChatServer(this);
  ServerSocket serverSocket = chatServer.getServerSocket();
  if (serverSocket == null) {
    throw new Exception("Could not get server socket");
  }
  chatServer.start();
  
  ServiceInfo serviceInfo = ServiceInfo.create(
    Constants.SERVICE_TYPE,
    Constants.SERVICE_NAME,
    port,
    Constants.SERVICE_DESCRIPTION
  );
  
  if (jmDns != null && serviceInfo != null) {
    serviceName = serviceInfo.getName();
    jmDns.registerService(serviceInfo);
  }
}

public void unregisterNetworkService() {
  if (jmDns != null) {
    jmDns.unregisterAllServices();
  } 
  
  chatServer.stopThread();
  
  * ...
}

Note

JmDNS nu oferă informații cu privire la rezultatul operațiilor de înregistrare / deînregistrare.