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