2008-12-10 111 views
3

在我的应用程序中,当AcceptTcpClient(或EndAcceptTcpClient)引发异常时,我当前停止监听。当我停止侦听器(套接字错误10004)或断开网络适配器时,通常会引发异常。TcpListener.AcceptTcpClient是否引发不重要的异常?

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

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

我发现很容易通过搜索谷歌的东西,像“MSDN Ssystem.Net.Sockets.TcpListener类”,然后导航到我需要的页面去你想要去的地方。

TcpLisenter.AcceptTcpClient Method

MSDN列出2个例外,可以抛出。

InvalidOperationException:侦听器尚未启动,但调用了Start。

SocketException:使用SocketException.ErrorCode属性获取特定的错误代码。获得此代码后,可以参考MSDN中的Windows套接字版本2 API错误代码文档以获取有关该错误的详细说明。

+1

我知道这些文档,并且我已经阅读了它。但它不回答我的问题。 – 2008-12-10 11:13:15