예제 #1
0
        static void JoinGame(string addr, int port)
        {
            var        serializer = new Network.Core.Serialization.JsonSerializer(); // сериализатор (приведение данных к унифицированному формату)
            GameClient client     = new GameClient(serializer);                      // инициализация игрового клиента
            GameView   gameView   = new GameView(client);                            // инициализация игрового представления

            try
            {
                client.Connect(addr, port);                                                     // подключаем клиент
                gameView.Process();                                                             // запсукаем игровой процесс
            }
            catch (Exception e)
            {
                Console.WriteLine(e);                                           // если не получилось подключиться то говорим об этом
                Console.WriteLine("Couldn't connect to specified server");
            }
        }
예제 #2
0
        static void StartServer(GameSession session, int port)
        {
            var        serializer = new Network.Core.Serialization.JsonSerializer();            // инициализация сериализатора
            GameServer server     = new GameServer(port, serializer, session);                  // инициализация игрового сервера

            try
            {
                server.Start();                                         // запуск сервера
                do
                {
                    server.Process();                                           // проверяем есть ли данные для получения + проверка на соединение
                    Thread.Sleep(1);
                } while (server.State != GameServerState.GameEnded);            // работает пока игра не окончится
            }
            catch (Exception)
            {
                //Something went wrong
            }

            server.Dispose();                                           // зачистка памяти по окончании работы
        }