TCPClient TimeoutC#

Место общения программистов C#
Ответить
Anonymous
 TCPClient Timeout

Сообщение Anonymous »

Как настройка пользовательского тайм -аута для Beginconnect Async Call может быть выполнена в C#?
Это очень полезно, подключаясь к хосту с вероятностью не слушать в данном порту. Каждый такой вызов тратит впустую около 15 -х годов, прежде чем выпустить поток.public bool Test()
{
using (var tcp = new TcpClient())
{
var c = tcp.BeginConnect(IPAddress.Parse("8.8.8.8"), 8080, null, null);
var success = c.AsyncWaitHandle.WaitOne(TimeSpan.FromSeconds(1));

if (!success)
{
Console.WriteLine("Before cleanup");
tcp.Close();
tcp.EndConnect(c);
Console.WriteLine("After cleanup");
throw new Exception("Failed to connect.");
}
}

return true;
}
< /code>

Однако это не работает. Действительно, после вызова функция входит в переключатель «если», но она немедленно блокирует tcp.close () вызов и ожидает упомянутых 15 с. Можно как -то избежать?

Подробнее здесь: https://stackoverflow.com/questions/281 ... ct-timeout
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»