2012-02-08 4 views
1

Я создаю приложение для WP7. И я работаю над etablishing соединение TCPcatching SocketException in socket.connectAysnc

код

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 произошло сообщение = попытка подключения не удалась, поскольку связанная сторона не ответила должным образом по истечении определенного периода времени или не удалось установить соединение, потому что подключенный хост не смог ответить ErrorCode = 10060 StackTrace: в System.Net.Sockets.Socket.DoWSAConnectOrSendTo (SocketAsyncEventArgs args) в системе. Net.Sockets.Socket.DoWSAConnectByName (SocketAsyncEventArgs арг) на 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 (о) Объект в System.Threading.Timer.ring()

хотя Я улавливаю Исключения, это не проходит через блок catch.Rather запрашивает вышеупомянутые исключения в диалоговом окне.

Во время отладки я выбрал перерыв, когда происходит исключение

+0

Разве второе исключение не отправляется в ваш блок catch, когда нажимать continue? – jgauffin

+0

@jgauffin Нет, это не – rakesh

ответ

1

После поиска причины ошибки некоторых форумов предполагают, что filenotfound исключения является ошибкой в ​​Windows Phone среды 7.1 отладки для подключения к сокету.