code: function getSocket(port, multicastAddress) {
      return new promise(function (resolve, reject) {
          try {
              var socket = dgram.createSocket({type: 'udp4', reuseAddr: true});
  
              socket.once('listening', function () {
                  socket._multicastAddress = multicastAddress;
                  socket._port = port;
                  socket.setBroadcast(true);
  
                  socket.setMulticastLoopback(true);
                  socket.setMulticastTTL(1);
                  socket.addMembership(socket._multicastAddress);
  
                  resolve(socket);
              });
  
              socket.bind(port);
          } catch (ex) {
              reject(ex);
          }
      }).disposer(function (socket) {
          if (socket._handle) {
              socket.close();
          }
      });
  }
docs: @class multicastIpc
   
  Configure multicast socket and start listening for messages.
  
  @private
  @param {number} port - Port to listen/send
  @param {string} multicastAddress - A multicast address for the socket (Default: 224.0.2.1)
  
  @fulfil {socket}
  @reject {Error}
  
  @returns {Promise}