コード例 #1
0
ファイル: Program.cs プロジェクト: prague15031939/OldChess
        static void Main(string[] args)
        {
            Console.Write("OldChess server, v. 1.01\ninitial config..\n");
            while (true)
            {
                string PatternServer = @"\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b:[0-9]{1,5}$";
                Console.Write("ip: ");
                string ip = Console.ReadLine();
                Console.Write("port: ");
                int port = Convert.ToInt32(Console.ReadLine());
                if (Regex.IsMatch($"{ip}:{port}", PatternServer))
                {
                    server = new ChessServer(ip, port);
                    break;
                }
                else
                {
                    Console.WriteLine("invalid data, try again");
                }
            }
            server.StartWork();
            Console.Write("server started\n");
            Thread ServerThread = new Thread(new ThreadStart(() => ProcessControlCommands(server)));

            ServerThread.Start();

            server.MainLoop();
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: prague15031939/OldChess
 private static void ProcessControlCommands(ChessServer server)
 {
     while (true)
     {
         string command = Console.ReadLine();
         if (command == "!stop")
         {
             try
             {
                 server.StopWork();
             }
             catch (Exception ex)
             {
                 Console.WriteLine(ex.Message);
                 continue;
             }
             Console.WriteLine("server shutdowned, press any key..");
             Console.ReadKey();
             return;
         }
         else if (command == "!users")
         {
             server.PrintUsers();
         }
         else if (command == "!sessions")
         {
             server.PrintSessions();
         }
     }
 }