Я смотрел на многочисленные примеры, такие как это , это и это , но ни один из них, похоже, не работает. Я не уверен, что не так, но для каждого примера, который я пробовал, ожидание просто игнорируется, и я получаю стандартное исключение необработанного сокета примерно через 1 секунду, независимо от указанного времени ожидания. No connection could be made because the target machine actively refused it.
Вот выдержка, помогающая понять:
public void Connect(string host, int port)
{
tcpClient.BeginConnect(host, port, OnConnect, null);
}
private void OnConnect(IAsyncResult async)
{
tcpClient.EndConnect(async);
}
Пробовал кучу разных примеров, но для всех них мое клиентское приложение либо просто не работает через секунду, либо выдает исключение для сокета. Будет ли попытка поймать здесь лучшим решением и просто избегать использования WaitHandles?