正在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()
虽然我正在捕获异常,但它不会通过捕获块。而是在对话框中提示上述异常。
调试时,我选择了异常发生时中断
在搜索错误原因后,一些论坛认为filenotfound异常是windows phone 7.1套接字连接调试环境中的一个错误。