Я создаю приложение для 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
Сообщение = попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через некоторое время, или не удалось установить соединение, потому что подключенный хост не смог ответить
ErrorCode = 10060
Трассировки стека:
в System.Net.Sockets.Socket.DoWSAConnectOrSendTo (аргументы SocketAsyncEventArgs)
в System.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 executeContext, обратный вызов ContextCallback, состояние объекта)
в System.Threading.ThreadPool.WorkItem.doWork (Объект o)
в System.Threading.Timer.ring ()
, хотя я перехватываю исключения, он не проходит через блок catch. Скорее выдает вышеупомянутые исключения в диалоговом окне.
Во время отладки я выбрал перерыв при возникновении исключения