static void ReInitialize() { SendToAll("erase|debug_erase"); FightProcess.ReInitalizeAll(); }
static void Listen() { try { while (true) { Console.WriteLine("Ожидание подключения..."); TcpClient newplayer = listener.AcceptTcpClient(); if (new BinaryReader(newplayer.GetStream()).ReadString() != "notbrowser") // так как к серверу умудряется еще браузер подключаться... { newplayer.Close(); continue; } /*if (!opened) * { * using (BinaryWriter bw = new BinaryWriter(newplayer.GetStream(), Encoding.UTF8, false)) * { * bw.Write("Игра не открыта, подождите некоторое время..."); * } * continue; * }*/ else { CheckConnections(); switch (players.Count) { case 0: CreateClient(newplayer); break; case 1: CreateClient(newplayer); opened = false; closeConnections = new Thread(CloseWhilePlaying); closeConnections.Start(); bool revanche; do { revanche = FightProcess.Start(); ReInitialize(); } while (revanche); SendToAll("Второй игрок отключился. Ожидание нового оппонента..."); Thread.Sleep(2000); opened = true; new TcpClient().Connect(IPAddress.Loopback, port); ReInitialize(); break; default: using (BinaryWriter bw = new BinaryWriter(newplayer.GetStream(), Encoding.UTF8, false)) { bw.Write("Игра уже идет, подождите конца раунда."); } break; } } } } catch (Exception e) { Console.WriteLine(e.Message); Console.WriteLine(e.TargetSite); Console.WriteLine(e.HelpLink); Console.WriteLine("Listen"); throw; } }