【问题标题】:Does TcpListener.AcceptTcpClient throw uncritical exceptions?TcpListener.AcceptTcpClient 会抛出非关键异常吗?
【发布时间】:2010-09-26 05:10:30
【问题描述】:

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

【问题讨论】:

    标签: c# .net sockets tcpclient tcplistener


    【解决方案1】:

    MSDN 的文档将列出方法/成员/等可能引发的所有异常。

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

    TcpLisenter.AcceptTcpClient Method

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

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

    SocketException :使用 SocketException.ErrorCode 属性获取特定的错误代码。获取此代码后,您可以参考 MSDN 中的 Windows Sockets version 2 API 错误代码文档,了解错误的详细说明。

    【讨论】:

    • 我知道文档,并且已经通读。但它没有回答我的问题。
    • "使用 SocketException.ErrorCode 属性获取具体的错误代码。"那是完全的逃避。谢谢 MSDN!
    猜你喜欢
    • 2018-03-25
    • 2011-11-02
    • 1970-01-01
    • 2011-07-12
    • 1970-01-01
    • 2023-03-23
    • 2011-07-03
    • 2020-02-24
    • 1970-01-01
    相关资源
    最近更新 更多