internal static void ReadAddServer(byte client, Packet packet) { string serverName = packet.ReadString(); int maxNumPlayers = packet.ReadInt(); string mapName = packet.ReadString(); int currentNumPlayers = packet.ReadInt(); int ping = packet.ReadInt(); if (InternetDiscoveryTCPServer.GameServerDict.ContainsKey(serverName)) { int port = int.Parse(InternetDiscoveryTCPServer.GameServerDict[serverName].StartInfo.ArgumentList[4]); InternetDiscoveryTCPServerSend.SendJoinServer(client, port); return; } Output.WriteLine($"Read AddServer from client:{client} at ip {InternetDiscoveryTCPServer.ClientDictionary[client].TCPClient.Client.RemoteEndPoint}"); int gameServerPort = InternetDiscoveryTCPServer.MakeGameServer(serverName, maxNumPlayers, mapName, currentNumPlayers, ping, timeOutSeconds: 30, isServerPermanent: false); if (gameServerPort == -1) { Output.WriteLine( $"\n==========================" + $"\nNo more servers available!" + $"\n==========================\n"); InternetDiscoveryTCPServerSend.SendNoMoreServersAvailable(client); return; } InternetDiscoveryTCPServerSend.SendJoinServer(client, gameServerPort); }
internal static void ReadJoinServerNamed(byte client, Packet packet) { string serverName = packet.ReadString(); GameServerProcess gameServer; if (!InternetDiscoveryTCPServer.GameServerDict.TryGetValue(serverName, out gameServer)) //Check if server is still running { InternetDiscoveryTCPServerSend.SendCantJoinServerDeleted(client, serverName); return; } //Give the port and ip to the client of server to join int serverPort = gameServer.ServerPort; InternetDiscoveryTCPServerSend.SendJoinServer(client, serverPort); }