code: func (s *Server) recv(c *net.UDPConn) {
  	if c == nil {
  		return
  	}
  	buf := make([]byte, 65536)
  	for !s.shouldShutdown {
  		n, from, err := c.ReadFrom(buf)
  		if err != nil {
  			continue
  		}
  		if err := s.parsePacket(buf[:n], from); err != nil {
  			log.Printf("[ERR] bonjour: Failed to handle query: %v", err)
  		}
  	}
  }
docs: // recv is a long running routine to receive packets from an interface