public void Process() { try { Stream = client.GetStream(); // получаем имя пользователя string message = GetMessage(); userName = message; Username = message; // посылаем сообщение о входе в чат всем подключенным пользователям server.BroadcastMessageForAll("$$$#!" + String.Join(",", server.Clients.Select(client => client.Username)), this.Id); Console.WriteLine(message); // в бесконечном цикле получаем сообщения от клиента while (true) { try { message = GetMessage(); message = String.Format("{0}: {1}", userName, message); Console.WriteLine(message); server.BroadcastMessage(message, this.Id); } catch { server.Clients.Remove(this); server.BroadcastMessageForAll("$$$#!" + String.Join(",", server.Clients.Select(client => client.Username)), this.Id); Console.WriteLine(message + " покинул чат"); break; } } } catch (Exception e) { Console.WriteLine(e.Message); } finally { // в случае выхода из цикла закрываем ресурсы server.RemoveConnection(this.Id); Close(); } }