/// <summary> /// Удаляет соединение из коллекции сервера /// </summary> /// <param name="id">Id клиента</param> protected internal void RemoveConnection(string id) { // возвращает первый элемент, подходящий под условие функции или дефолтный ClientCore client = clients.FirstOrDefault(c => c.Id == id); // удаление клиента из списка подключений if (client != null) { clients.Remove(client); } }
/// <summary> /// Запускает прослушивание входящих подключений в отдельных потоках /// </summary> protected internal void Listen() { try { tcpListener = new TcpListener(IPAddress.Any, 8000); tcpListener.Start(); Console.WriteLine("Сервер запущен. Ожидание подключений..."); while (true) { TcpClient tcpClient = tcpListener.AcceptTcpClient(); ClientCore clientCore = new ClientCore(tcpClient, this); Thread clientThread = new Thread(new ThreadStart(clientCore.Process)); clientThread.Start(); } } catch (Exception ex) { Console.WriteLine(ex.Message); Disconnect(); } }
/// <summary> /// Добавляет новое соединение в коллекцию сервера /// </summary> /// <param name="clientCore">Клиент</param> protected internal void AddConnection(ClientCore clientCore) { clients.Add(clientCore); }