code: func NewTCPProxy(frontendAddr, backendAddr *net.TCPAddr) (*TCPProxy, error) {
  	listener, err := net.ListenTCP("tcp", frontendAddr)
  	if err != nil {
  		return nil, err
  	}
  	// If the port in frontendAddr was 0 then ListenTCP will have a picked
  	// a port to listen on, hence the call to Addr to get that actual port:
  	return &TCPProxy{
  		listener:     listener,
  		frontendAddr: listener.Addr().(*net.TCPAddr),
  		backendAddr:  backendAddr,
  	}, nil
  }
docs: // NewTCPProxy creates a new TCPProxy.