TcpListener.AcceptTcpClient генерирует некритические исключения? - PullRequest
3 голосов
/ 10 декабря 2008

В моем приложении в настоящее время я прекращаю прослушивание, когда AcceptTcpClient (или EndAcceptTcpClient) выдает исключение. Обычно возникают исключения при остановке прослушивателя (ошибка сокета 10004) или при отключении сетевого адаптера.

try
{
    while (true)
    {
        TcpClient client = listener.AcceptTcpClient();
        // omitted: start new thread which handles the client connection
    }
}
catch (...)
{
    // omitted: handle exception, log, stop listening
}

Но есть ли исключения, вызванные клиентом, которые потребуют игнорировать (или зарегистрировать) исключение и продолжать вызывать AcceptTcpClient?

1 Ответ

0 голосов
/ 10 декабря 2008

В MSDN есть документация, в которой будут перечислены все исключения, которые могут быть вызваны методами / членами / и т. Д.

Мне легко найти то, что вам нужно, по поиску в Google что-то вроде "MSDN Ssystem.Net.Sockets.TcpListener class" и затем переход на нужную мне страницу.

TcpLisenter.AcceptTcpClient Method

MSDN перечисляет 2 исключения, которые могут быть выброшены.

InvalidOperationException: слушатель не был запущен с вызовом Start.

SocketException: используйте свойство SocketException.ErrorCode для получения конкретного кода ошибки. Получив этот код, вы можете обратиться к документации по коду ошибки API Windows Sockets версии 2 в MSDN для подробного описания ошибки.

...