在socket.connectAsync中捕获SocketException

时间:2012-02-08 14:05:19

标签: c# .net sockets windows-phone-7 tcp

我正在为WP7构建一个应用程序。我正在努力建立TCP连接

代码

namespace TCP
{
   public class SocketEventArgsExtension : SocketAysncEventArgs
    {
      public EventHandler<SocketAysncEventArgs> _onConnectionCompleted;

      public OnCompleted(EventHandler<SocketAysncEventArgs> handler)
      {
         base.completed+=handler;
         _onConnectionCompleted=handler;
      }
    }
} 

 namespace TCP {
   public class TCPSocket: Socket
   {
       public TCPSocket():base(all arguments)         

       public bool ConnectAsync(SocketEventArgsExtension socketArgsExtension)
       {
         try{              
               if (!base.ConnectAsync(socketArgsExtension))
               {

         socketArgsExtension.SocketActionIfCompletedSynchronously(socketAsyncEventArgs);

               }
             }catch(SocketException e )
             {
                this.ConnectAsync(socketArgsExtension);
             }


        }

   }
}

namespace TCP
{
   public class connection
   {
     public void func()
     { 
        try
        {
           Socket s= new TCPSocket();
           var Socketargs= new SocketEventArgsExtension()  {RemoteEndPoint=_hostEntry};           //_hostEntry is DndEndPoint;
           socketArgs.Oncompleted((o,e)=>Somecallback(e));
           s.connectAsync(SocketArgs);
        }catch(Exception e)
        {
        }
    }
}

问题

现在我的问题是当我用一个不存在的服务器地址提供_hostEntry然后尝试调试

抛出异常

System.IO.FileNotFoundException

详情

{“文件或程序集名称'System.Net.debug.resources,Version = 2.0.5.0,Culture = en-US,PublicKeyToken = 7cec85d7bea7798e',或其中一个依赖项,未找到。”}

现在点击“继续”

再次发生异常

发生了System.Net.Sockets.SocketException   消息=连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机无法响应   错误码= 10060   堆栈跟踪:        在System.Net.Sockets.Socket.DoWSAConnectOrSendTo(SocketAsyncEventArgs args)        在System.Net.Sockets.Socket.DoWSAConnectByName(SocketAsyncEventArgs args)        在System.Net.Sockets.Socket.WSAConnectByNameAsyncRequest.doRequest()        在System.Net.Sockets.Socket.AsyncRequest.handleRequest()        在System.Net.Sockets.Socket.SocketAsyncRequestManager.WorkerThread.doWork()        在System.Net.Sockets.Socket.SocketAsyncRequestManager.WorkerThread.doWorkI(Object o)        在System.Threading.ThreadPool.WorkItem.WaitCallback_Context(对象状态)        在System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback回调,对象状态)        在System.Threading.ThreadPool.WorkItem.doWork(Object o)        在System.Threading.Timer.ring()

虽然我正在捕获异常,但它没有通过catch块.Rather在对话框中提示上述异常。

调试时我在发生异常时选择了中断

1 个答案:

答案 0 :(得分:1)

在搜索错误原因后,一些论坛建议filenotfound异常是windows phone 7.1调试环境中用于套接字连接的错误。