code: func (p *Proxy) ListenAndServe() error {
  	var err error
  	p.listener, err = net.Listen("tcp4",
  		net.JoinHostPort(p.Kite.Config.IP, strconv.Itoa(p.Kite.Config.Port)))
  	if err != nil {
  		return err
  	}
  	p.Kite.Log.Info("Listening on: %s", p.listener.Addr().String())
  
  	close(p.readyC)
  
  	server := http.Server{
  		Handler: p.mux,
  	}
  
  	defer close(p.closeC)
  	return server.Serve(p.listener)
  }
docs: // ListenAndServe listens on the TCP network address addr and then calls Serve
  // with handler to handle requests on incoming connections.