/// <summary> /// Подключение к серверу. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ConnectButton_Click(object sender, RoutedEventArgs e) { if (client == null || (client.Connected == false)) { StartUp(); } else { if (client.Connected) { ConnectButton.Content = "Подключиться"; ConsoleClientTextBox.Clear(); WriteStatus("Разрыв соеднинения с сервером!"); IPBox.IsEnabled = true; FirstLastNameBox.IsEnabled = false; UniversityBox.IsEnabled = false; PhoneBox.IsEnabled = false; browseButton.IsEnabled = false; SendButton.IsEnabled = false; byte[] message = Encoding.ASCII.GetBytes(disconnectMessage); // отправление сообщения об отключении на сервер _ = Send(message); Shutdown(); // завершение соединения } else { StartUp(); } } }
/// <summary> /// Вывод информации в "псевдо-консоль" при помощи Dispatcher. /// </summary> /// <param name="info">Строка, которую необходимо отобразить.</param> private void WriteStatus(string info) { _ = Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart) delegate() { ConsoleClientTextBox.Text += info + "\n"; ConsoleTextBoxClientScroll.ScrollToEnd(); ConsoleClientTextBox.UpdateLayout(); } ); }
/// <summary> /// Считывание данных с полей ввода IP-адреса и порта (задан изначально), их проверка. /// Вызов функции StartClient. /// </summary> private void StartUp() { ConsoleClientTextBox.Text = "Невозможно подключиться к серверу!" + "\nВозможно написанные ниже сообщения не являются истиной!" + "\n----------\n"; if (IPBox.Text != string.Empty && PortBox.Text != string.Empty) // проверка на корректность вводимых данных { IPAddress = IPBox.Text; port = int.Parse(PortBox.Text); bool result; result = StartClient(); if (result) { ConnectButton.Content = "Отключиться"; ConsoleClientTextBox.Clear(); IPBox.IsEnabled = false; FirstLastNameBox.IsEnabled = true; UniversityBox.IsEnabled = true; PhoneBox.IsEnabled = true; browseButton.IsEnabled = true; SendButton.IsEnabled = true; } else { ConnectButton.Content = "Подключиться"; } } else { _ = MessageBox.Show("Введите IP адрес и порт!", "Ошибка!"); } }