首页 文章

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

提问于
浏览
3

在我的应用程序中,当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

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

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

    TcpLisenter.AcceptTcpClient Method

    MSDN列出了可抛出的2个异常 .

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

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

相关问题