代码之家  ›  专栏  ›  技术社区  ›  Stefan Schultze

TcpListener.AcceptTcpClient是否引发非关键异常?

  •  3
  • Stefan Schultze  · 技术社区  · 16 年前

    在我的应用程序中,当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 回复  |  直到 14 年前
        1
  •  0
  •   Chad Moran    16 年前

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

    我发现在谷歌上搜索“msdn ssystem.net.sockets.tcplistener类”然后导航到我需要的页面,很容易找到你想要去的地方。

    TcpLisenter.AcceptTcpClient Method

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

    InvalidOperationException:侦听器尚未使用要启动的调用启动。

    socketexception:使用socketexception.error code属性获取特定的错误代码。当您获得此代码时,可以参考MSDN中的Windows Socket版本2 API错误代码文档来详细描述错误。