TcpListener.AcceptTcpClient是否会抛出非关键异常?

时间:2008-12-10 10:02:41

标签: c# .net sockets tcpclient tcplistener

在我的应用程序中,当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 :(得分:0)

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

通过搜索谷歌搜索类似“MSDN Ssystem.Net.Sockets.TcpListener类”的内容,然后导航到我需要的页面,我发现很容易找到你想去的地方。

TcpLisenter.AcceptTcpClient Method

MSDN列出了可以抛出的2个异常。

InvalidOperationException:尚未通过调用Start启动侦听器。

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