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); }
static void Main(string[] args) { AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; if (args.Length == 3) { GameServerFileName = args[0]; bool isTestBuild = bool.Parse(args[1]); string version = args[2]; Output.Init(version); PortInUse = isTestBuild ? PortTesting : PortRelease; InternetDiscoveryTCPServer.StartServer(PortInUse, version); Thread mainThread = new Thread(new ThreadStart(MainThread)); mainThread.Start(); } else { throw new Exception("Not entered the Proper args... Need to Enter \"GameServer file name\", isTesting either \"true\" or \"false\", \"version number\" to start in MainServer args..."); } }