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