.NET 4.x Заново проверить подключение по истечению таймера - C#
Формулировка задачи:
Доброго времени постояльцы.
Подскажите как сделать следующее.
Форма при открытии коннектится к серверу и срабатывает таймер.
Если сервер не доступен, то нужно попробовать подключиться через N секунд.
Если сервер доступен, то проверять подключение через N секунд.
Если доступен, делаем по новой, через N времени снова просто проверяем.
Если не доступен, выводим сообщение и пробуем подключиться.
private void timer1_Tick(object sender, EventArgs e)
{
TcpClient tcpClient;
NetworkStream networkStream;
StreamReader streamReader;
StreamWriter streamWriter;
try
{
tcpClient = new TcpClient("192.168.12.31", 5555); // куда подкл + переменная
networkStream = tcpClient.GetStream(); //попытка подключения
streamReader = new StreamReader(networkStream); //подхватываем поток чтения
streamWriter = new StreamWriter(networkStream); // поток записи
streamWriter.WriteLine("Client: ГОТОВ"); // передаём сообщение на сервер
streamWriter.Flush();
}
catch (SocketException)
{
MessageBox.Show("Вы не подключены к серверу!\n\r\n\rВозможно сервер выключен\n\rПрограмма будет работать в автономном режиме " , "Внимание" , MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
//В лэйбл выводим значение timerCounter уменьшеное на 1
this.label2.Text = (--timerCounter).ToString();
if (label2.Text == "0")
{
timer.Stop();
MessageBox.Show("Время вышло");
}Решение задачи: «.NET 4.x Заново проверить подключение по истечению таймера»
textual
Листинг программы
while (!server)
{
Console.WriteLine("Подключаемся")
networkStream = tcpClient.GetStream();
Thread.Sleep(1000);
if (server)
Console.WriteLine("Сервер подключен");
else
{
Console.WriteLine("Сервер не подключен, повторная попытка через 5 секунд");
Thread.Sleep(5000);
}