日期:2014-05-18  浏览次数:21008 次

使用AcceptAsync方法异步接收Socket如何捕获错误?
比如SocketException错误!这个错误我程序里的Try捕获不到,或者说也不清楚具体Try要放在那里?导致出错时会使得整个程序奔溃(跳出操作系统自己的错误对话框)

比如下面的例子try具体要套到那里才能接到这个错误?

void bindSocket()
{
  Socket s= new Socket( AddressFamily.InterNetwork , SocketType.Stream , ProtocolType.Tcp );
  if ( !s.AcceptAsync(args) )
  {  
  OnAcceptedCompleted( s, args);
  }
}

void OnAcceptedCompleted(Socket s,object o)
{
  try
  {
  }
  catch()
  {
  //这里接接不到SocketException,导致错误被仍到了最上面,使得整个程序都奔溃!
  //我要捕获这个错误应该将try放到那里?
  }
}

------解决方案--------------------
什么情况?