starting host and creating match

I want to start a host and a client on the same machine and I also want to create a match so the game room will be accessible in a list of matches:

	public void CreateMatch()
	{
      networkMatch = gameObject.AddComponent<NetworkMatch>();
      NetworkLobbyManager networkLobbyManager = networkManager.GetComponent<NetworkLobbyManager>();

      networkLobbyManager.StartHost();
    
      CreateMatchRequest create = new CreateMatchRequest();
      create.name = "MS_" + Guid.NewGuid().ToString("N");
      create.size = 2;
      create.advertise = true;
      create.password = "";

      networkMatch.CreateMatch(create, OnMatchCreate);
	}

  public void OnMatchCreate(CreateMatchResponse matchResponse)
  {
    if (matchResponse.success)
    {
      Utility.SetAccessTokenForNetwork(matchResponse.networkId, new NetworkAccessToken(matchResponse.accessTokenString));
      NetworkServer.Listen(new MatchInfo(matchResponse), 9000);
      Debug.Log("Create match succeeded");
    }
    else {
      Debug.LogError("Create match failed");
    }
  }

If I do this, the row NetworkServer.Listen() will cause three error:

  1. Cannot open socket on ip {*} and port {7705}; check please your network, most probably port has been already occupied
  2. host id out of bound id {-1} max id should be greater 0 and less than {1}
  3. Host doesn’t exist

And the room will not be joinable. It will be joinable by specifying my ip if I remove the networkMatch.CreateMatch().

As described here, I had to StartHost() at OnMatchCreate passing a MatchInfo object.

  public void OnMatchCreate(CreateMatchResponse matchResponse)
  {
    if (matchResponse.success)
    {
      matchInfo = new MatchInfo(matchResponse);
      Utility.SetAccessTokenForNetwork(matchResponse.networkId, new NetworkAccessToken(matchResponse.accessTokenString));
      networkLobbyManager.StartHost(matchInfo);
      Debug.Log("Create match succeeded");
    }
    else {
      Debug.LogError("Create match failed");
    }
  }

I also removed the NetworkServer.Listen(new MatchInfo(matchResponse), 9000); row