code: @Override
  	protected void disconnect() {
  
  		// Stop thread
  		super.disconnect();
  
  		// Stop multicast receiver
  		if (multicastReceiver != null) {
  			try {
  				InetAddress address = InetAddress.getByName(udpAddress);
  				multicastReceiver.leaveGroup(address);
  			} catch (Exception ignored) {
  			}
  			try {
  				multicastReceiver.close();
  			} catch (Exception ignored) {
  			}
  			multicastReceiver = null;
  			String msg = "Multicast discovery service stopped on udp://" + udpAddress + ':' + udpPort;
  			if (netIf == null) {
  				logger.info(msg + '.');
  			} else {
  				logger.info(msg + " (" + netIf.getDisplayName() + ").");
  			}
  		}
  	}
docs: --- DISCONNECT ---