TcpListener.AcceptTcpClient генерирует некритические исключения?

В моем приложении в настоящее время я прекращаю прослушивание, когда 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?

10.12.2008 10:02:41
1 ОТВЕТ

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

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

Метод TcpLisenter.AcceptTcpClient

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

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

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

0
10.12.2008 11:05:34
Я знаю документацию, и я прочитал ее полностью. Но это не отвечает на мой вопрос.
Stefan Schultze 10.12.2008 11:13:15
«Используйте свойство SocketException.ErrorCode, чтобы получить конкретный код ошибки.» Это полная поддержка. Спасибо ни за что MSDN!
Eric Nicholson 13.07.2009 18:20:21