正在socket.connectAysnc中捕获SocketException

本文关键字:SocketException socket connectAysnc 正在 | 更新日期: 2023-09-27 18:23:42

我正在为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=7cc85d7bea7798e"或其依赖项之一。"}

现在当我点击继续

再次出现异常

发生System.Net.Sockets.SocketException消息=连接尝试失败,因为连接方在一段时间后没有正确响应,或者由于连接的主机没有响应而建立的连接失败错误代码=10060StackTrace:位于System.Net.Socket.Socket.DoWSAConnectOrSendTo(SocketAsyncEventArgs参数)位于System.Net.Socket.Socket.DoWSAConnectByName(SocketAsyncEventArgs参数)位于System.Net.Socket.Socket.WSAConnectByNameAsyncRequest.doRequest()位于System.Net.Socket.Socket.AsyncRequest.handleRequest()位于System.Net.Socket.SocketAsyncRequestManager.WorkerThread.doWork()位于System.Net.Socket.SocketAsyncRequestManager.WorkerThread.doWorkI(对象o)位于System.Threading.ThreadPool.WorkItem.WetCallback_Context(对象状态)在System.Threading.ExecutionContext.Run(ExecutionContext ExecutionContext,ContextCallback回调,对象状态)位于System.Threading.ThreadPool.WorkItem.doWork(Object o)在System.Threading.Timer.ring()

虽然我正在捕获异常,但它不会通过捕获块。而是在对话框中提示上述异常。

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

正在socket.connectAysnc中捕获SocketException

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