public void Send(string data) // отправляет данные на сервер { try { byte[] buff = DESCryptography.Encrypt(data, DESCryptography.Key, DESCryptography.Iv); // шифруем сообщение int bytesSend = _serverSocket.Send(buff); // передаем массив байтов в сокет } catch { Print("Нет подключения к серверу..."); } }
private void Listner() // слушаем сообщения с сервера { try { while (_serverSocket.Connected) // если сокет подключен к удаленному узлу, то считываем данные { byte[] buffer = new byte[65536]; // создаем буфер для приема сообщений int bytesRec = _serverSocket.Receive(buffer); // принимаем данные Array.Resize(ref buffer, bytesRec); // обрезаем массив байтов по длине полученного сообщения buffer = DESCryptography.Decrypt(buffer, DESCryptography.Key, DESCryptography.Iv); // расшифровываем сообщение string data = Encoding.UTF8.GetString(buffer); // преобразуем массив байтов в текст HandleCommand(data); // передаем сообщение в обработчик команд } } catch (Exception) { ClearChat(); // очищаем окно чата ClearOnlineUsers(); // очищаем список онлайн пользователей Print($"Вы были отключены от сервера!"); // Возвращаем все элементы формы в начальное положеие if (menuStrip.InvokeRequired) { TxtBoxUserName.Invoke(new Action(() => регистрацияToolStripMenuItem.Enabled = true)); } else { регистрацияToolStripMenuItem.Enabled = true; } if (TxtBoxUserName.InvokeRequired) { TxtBoxUserName.Invoke(new Action(() => TxtBoxUserName.Enabled = true)); } else { TxtBoxUserName.Enabled = true; } if (TxtBoxUserPassword.InvokeRequired) { TxtBoxUserPassword.Invoke(new Action(() => TxtBoxUserPassword.Enabled = true)); } else { TxtBoxUserPassword.Enabled = true; } if (BtnEnterChat.InvokeRequired) { BtnEnterChat.Invoke(new Action(() => BtnEnterChat.Enabled = true)); } else { BtnEnterChat.Enabled = true; } if (BtnChatSend.InvokeRequired) { BtnChatSend.Invoke(new Action(() => BtnChatSend.Enabled = false)); } else { BtnChatSend.Enabled = false; } if (TxtBoxChatMsg.InvokeRequired) { TxtBoxChatMsg.Invoke(new Action(() => TxtBoxChatMsg.Enabled = false)); } else { TxtBoxChatMsg.Enabled = false; } if (BtnEnterChat.InvokeRequired) { BtnEnterChat.Invoke(new Action(() => BtnEnterChat.Text = "Войти")); } else { BtnEnterChat.Text = "Войти"; } } }