TcpListener.AcceptTcpClient是否会抛出不重要的异常?

3
在我的应用程序中,当 AcceptTcpClient(或 EndAcceptTcpClient)抛出异常时,我目前会停止监听。通常情况下,当我停止监听器(socket error 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

MSDN有文档列出了所有方法/成员等可能抛出的异常。

我发现通过在Google上搜索“MSDN Ssystem.Net.Sockets.TcpListener类”之类的内容,然后导航到需要的页面很容易找到所需信息。

TcpLisenter.AcceptTcpClient方法

MSDN列出了两个可能抛出的异常。

InvalidOperationException:监听器没有通过调用Start启动。

SocketException:使用SocketException.ErrorCode属性获取特定的错误代码。当您获得此代码时,可以参考MSDN中的Windows套接字版本2 API错误代码文档以获取详细的错误描述。


1
我知道这份文档,我已经仔细阅读了它。但它没有回答我的问题。 - Stefan Schultze
1
使用 SocketException.ErrorCode 属性获取特定的错误代码。这完全是个逃避责任。感谢 MSDN 没有帮忙! - Eric Nicholson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接