// При принятии нового клиента private void ChatClientInteraction() { // Считывание присланной информации от клиента string help_var; try { help_var = srReceiver.ReadLine(); } catch { CloseConnection(); return; } var userInfo = ExtractUserInfo(help_var); var authRes = ValidateUserInfo(userInfo); string resultMessage = authRes.code.ToString() + "|" + authRes.message; swSender.WriteLine(resultMessage); swSender.Flush(); if (authRes.code != 0) { CloseConnection(); return; } currUserInfo = userInfo; ChatServer.AddUser(tcpClient, currUserInfo.username); try { string userMessage; // Пока соединение активно while (true) { userMessage = srReceiver.ReadLine(); if (userMessage == null) { break; } if (userMessage == "") { continue; } // Как только мы получаем сообщение, передаем его серверу ChatServer.SendUserMessage(currUserInfo.username, userMessage); } } finally { // Если возникла какая-то ошибка при передаче сообщения, удаляем пользователя ChatServer.RemoveUser(tcpClient); } }