Пример #1
0
        /// <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);
            }
        }
Пример #2
0
        /// <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();
            }
        }
Пример #3
0
 /// <summary>
 /// Добавляет новое соединение в коллекцию сервера
 /// </summary>
 /// <param name="clientCore">Клиент</param>
 protected internal void AddConnection(ClientCore clientCore)
 {
     clients.Add(clientCore);
 }