public synchronized void shutdown() {
   active = false;
   if (advertiseViaMulticastDNS) {
     zeroConf.unadvertise();
   }
   if (handlerThread != null) {
     handlerThread.interrupt();
   }
   if (receiverThread != null) {
     receiverThread.interrupt();
   }
   if (socket != null) {
     socket.close();
   }
 }