static void Main(string[] args) { LoggerEvs.messageCame += logToConsole; ///////////////////////////////// // Получить настройки сервера ServerProperties serverProps = new ServerProperties(); serverProps.ReadXML(); String propsMsg = String.Format("Настройки сервера: ServerName = {0}; IP = {1}; Port = {2};", serverProps.Fields.ServerName, IPAddress.Any.ToString(), serverProps.Fields.Port); LoggerEvs.writeLog(propsMsg); Console.Title = serverProps.Fields.ServerName; // Создать tcp-слушатель TcpListener myTcpListener = new TcpListener(IPAddress.Any, serverProps.Fields.Port); // Запустить слушатель myTcpListener.Start(); // Текущий подключенный клиент TcpClient client; // Текущий поток клиента Thread clientTh; while (true) { // Принять новое подключение client = myTcpListener.AcceptTcpClient(); LoggerEvs.writeLog("New client connected."); lock (locker) { int id = globalClientsId; clientTh = new Thread(delegate() { requestsProcessing(id); }); Client newClient = new Client(clientTh, client, globalClientsId); // Добавить клиента в коллекцию clients.Add(id, newClient); // Создать новый поток clients[id].Thread.Start(); globalClientsId++; } } }