Тайм-аут или try-catch для подключения к серверу? (C # WinForms) - PullRequest
3 голосов
/ 25 сентября 2011

Какой код предпочтительнее для обработки неудачных соединений с сервером?

Примерно так:

Или этот вид кода в начале асинхронного обратного вызова дляTcpClient.BeginConnect:

try
{
    tcpClient.EndConnect(async);
}
catch
{
    System.Windows.Forms.MessageBox.Show("uh oh");

    return;
}

Спасибо за чтение

1 Ответ

1 голос
/ 25 сентября 2011

Когда ваш контекст обрабатывает тайм-ауты соединения, я предполагаю, что вы имеете в виду, что вы еще не получили ответ на запрос в течение определенного периода времени.

Завершение вашего EndConnect в блок try и отлов любых исключений не обязательно означает возникновение тайм-аута. В настоящее время нет встроенной поддержки для обработки таймаутов с TcpClient. Ваша первая ссылка является хорошим примером того, как обнаруживать и работать с таймаутами соединения.

Эта статья также может быть вам полезна: Использование асинхронного клиентского сокета

...