Im пытается подключиться к моему маршрутизатору внутри локальной сети. До сих пор я использовал TcpClient.C# TcpClient Timeout
Проверьте мой код:
public static void RouterConnect()
{
TcpClient tcpClient = new TcpClient("192.168.180.1",23); <-- Timeout comes up here
tcpClient.ReceiveTimeout = 2000; // Not working
tcpClient.SendTimeout = 2000; // Also not working
NetworkStream nStream = tcpClient.GetStream(); <-- thought Timeout would raise here
// Further code here. But already tested while commented out.
// So everything else expect the code above shouldnt be relevant.
}
Я хотел бы добавить настройки-формы (маршрутизатора IP/пользователь/пароль). Следовательно, может возникнуть сбой на стороне пользователя, где пользователь вводит не существующий хост-ip.
Текущее время составляет около 20 секунд, что слишком высоко. TcpClient.ReceiveTimeout
и TcpClient.SendTimeout
arnt - правильные тайм-ауты, как я уже пробовал. Google не помогал мне в этом.
Итак, кто-нибудь знает, как установить таймаут в правильном направлении для этого? Я читал об асинхронном режиме. которые я бы не хотел использовать. Было бы здорово установить 1-строчный тайм-аут. Возможное?
Большое спасибо!
Edit 1: При ближайшем рассмотрении во время отладки я заметил, таймаут уже воспитывающей при инициализации TcpClient (в редакции выше в моем коде) не так как я думал раньше на .GetStream()
.
EDIT РЕШЕНИЕ:
Поскольку никто не отвечал рабочий код из решения я выбрал, вот как его работы:
public static void RouterConnect()
{
TcpClient tcpClient = new TcpClient();
if(tcpClient.ConnectAsync("192.168.80.1",23).Wait(TimeSpan.FromSeconds(2)))
{
NetworkStream nStream = tcpClient.GetStream();
}
else
{
MessageBox.Show("Could not connect!");
}
}
Где вы читаете информацию из потока? – cubrr
Он приходит позже, но не имеет значения. Я прокомментировал чтение. Тайм-аут появляется, как показано в моем отредактированном коде выше при инициализации tcpClient. – C4u
Этот конструктор 'TcpClient' также [подключает клиент] (https://msdn.microsoft.com/en-us/library/115ytk56 (v = vs.110) .aspx) к конечной точке. – cubrr