/// <summary> /// Обработчик команды диспетчера /// </summary> /// <param name="Stream">поток</param> /// <param name="Cmd">команда</param> private void DispatcherCommandHandler(NetStreamReaderWriter Stream, NetCommand Cmd) { try { switch (Cmd.cmd) { // Зарегистрировался новый сервер case "!serverregistered": { string[] param = Cmd.parameters.Split(new char[] { ' ' }); if (param.Length < 2) { UiWriteLog("Неверный формат команды"); break; } string ip = param[0]; string port = param[1]; Stream.WriteCmd(AnsAddServer(ip, int.Parse(port))); } break; // Сервер разрегистрировался case "!serverunregistered": { string[] param = Cmd.parameters.Split(new char[] { ' ' }); if (param.Length < 2) { UiWriteLog("Неверный формат команды"); break; } string ip = param[0]; string port = param[1]; Stream.WriteCmd(AnsDeleteServer(ip, int.Parse(port))); } break; // Регистрация и анрегистрация клиентов case "!clientregistered": case "!clientunregistered": Stream.WriteCmd(CreateCommand("!ok", "Вас понял!")); NetCommand CloneCmd = Cmd.Clone(); CloneCmd.Ip = m_ServerIP.ToString(); CloneCmd.Port = m_ServerPort; CloneCmd.sender = "msgserver"; SendCmdToAllClients(CloneCmd); break; // Неизвестная команда default: { Stream.WriteCmd(CreateCommand("!unknowncommand", "К сожалению сервер не знает такой команды")); UiWriteLog("Такая команда неизвестна серверу!"); } break; } } catch (Exception ex) { Debug.Write(" > Ошибка в DispatcherCommandHandler: " + ex.Message); } }