c# - TcpListener.AcceptTcpClient 是否抛出不重要的异常?

标签 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?

最佳答案

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

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

TcpLisenter.AcceptTcpClient Method

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

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

SocketException :使用 SocketException.ErrorCode 属性获取具体的错误代码。当您获得此代码后,您可以引用MSDN中的Windows Sockets version 2 API错误代码文档,了解详细的错误描述。

关于c# - TcpListener.AcceptTcpClient 是否抛出不重要的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/355573/

相关文章:

c# - 我如何使用 DISABLEUSERCALLBACKEXCEPTION 修复 Win7 应用程序兼容性垫片

c# - Datalogic 条形码/重量扫描仪

c# - 为什么 RotateFlipType 枚举的实现方式不同?

.net - 如何在VB.net应用程序中获取最新版本MS Excel的引用?

java - 有没有办法将 SSLContext 与 ServerSocketChannel 一起使用?

linux - arping : EPERM when run via strace

java - 通过套接字发送多个图像

c# - 如何以 DateTime 格式显示双倍 (HH :mm:ss)?

c# - 使用新的 RazorEngine API 进行模板化

c# - 值不能为空。参数名称 : dataSource. 编辑数据网格并保存到数据库