code: func (cfg *Config) NewListener(network, addr string) (net.Listener, error) {
  	sa, soType, err := getSockaddr(network, addr)
  	if err != nil {
  		return nil, err
  	}
  
  	fd, err := newSocketCloexec(soType, syscall.SOCK_STREAM, syscall.IPPROTO_TCP)
  	if err != nil {
  		return nil, err
  	}
  
  	if err = cfg.fdSetup(fd, sa, addr); err != nil {
  		syscall.Close(fd)
  		return nil, err
  	}
  
  	name := fmt.Sprintf("reuseport.%d.%s.%s", os.Getpid(), network, addr)
  	file := os.NewFile(uintptr(fd), name)
  	ln, err := net.FileListener(file)
  	if err != nil {
  		file.Close()
  		return nil, err
  	}
  
  	if err = file.Close(); err != nil {
  		ln.Close()
  		return nil, err
  	}
  
  	return ln, nil
  }
docs: // NewListener returns TCP listener with options set in the Config.
  //
  // The function may be called many times for creating distinct listeners
  // with the given config.
  //
  // Only tcp4 and tcp6 networks are supported.