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);
        }
예제 #2
0
        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...");
            }
        }