code: func CreateListener(endpoint string) (net.Listener, error) {
  	protocol, addr, err := parseEndpoint(endpoint)
  	if err != nil {
  		return nil, err
  	}
  
  	switch protocol {
  	case tcpProtocol:
  		return net.Listen(tcpProtocol, addr)
  
  	case npipeProtocol:
  		return winio.ListenPipe(addr, nil)
  
  	default:
  		return nil, fmt.Errorf("only support tcp and npipe endpoint")
  	}
  }
docs: // CreateListener creates a listener on the specified endpoint.