gpt4 book ai didi

c# - 在 socket.connectAsync 中捕获 SocketException

转载 作者:可可西里 更新时间:2023-11-01 02:52:49 25 4
gpt4 key购买 nike

我正在为 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 Message=A connection attempt failed because the connected party didn't properly respond after a period time,或建立的连接失败,因为连接的主机未能响应 错误代码=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(对象 o) 在 System.Threading.ThreadPool.WorkItem.WaitCallback_Context(对象状态) 在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback 回调,对象状态) 在 System.Threading.ThreadPool.WorkItem.doWork(对象 o) 在 System.Threading.Timer.ring()

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

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

最佳答案

在查找错误原因后,一些论坛提示filenotfound异常是windows phone 7.1 socket连接调试环境的bug。

关于c# - 在 socket.connectAsync 中捕获 SocketException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9194860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com