在我的应用程序中,当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?
答案 0 :(得分:0)
MSDN的文档将列出方法/成员/等可以抛出的所有异常。
通过搜索谷歌搜索类似“MSDN Ssystem.Net.Sockets.TcpListener类”的内容,然后导航到我需要的页面,我发现很容易找到你想去的地方。
TcpLisenter.AcceptTcpClient Method
MSDN列出了可以抛出的2个异常。
InvalidOperationException:尚未通过调用Start启动侦听器。
SocketException:使用SocketException.ErrorCode属性获取特定的错误代码。获取此代码后,可以参考MSDN中的Windows套接字版本2 API错误代码文档以获取错误的详细说明。