我有一个用C#编写的库,我在WP7 / iOS / Windows Apps中使用过它。它适用于Mono,因为我只使用UdpClient而已。它是一个自动查找对等的开源库。您可以在salaam.codeplex.com
找到它现在我只是想将我的应用移植到Android。当我找到我的同伴时,我只想关闭UDP连接并转到另一个活动,但是当我关闭套接字时,尽管我把它放在try catch短语中,但它会抛出SocketException
并退出。
我该怎么做才能防止这种情况?
如果你完成了活动,它就会给你这个例外,如果你打电话给SalaamBrowser.Close();
它是一样的。
例外文字:
未处理的例外情况: System.Net.Sockets.SocketException:中断 在System.Net.Sockets.Socket.ReceiveFrom_nochecks_exc(System.Byte [] buf,Int32 offset,Int32 size,SocketFlags flags,System.Net.EndPoint& remote_end,Boolean throwOnError,System.Int32& error)[0x00000] in:0
在System.Net.Sockets.Socket.ReceiveFrom_nochecks(System.Byte [] buf,Int32 offset,Int32 size,SocketFlags flags,System.Net.EndPoint& remote_end)[0x00000] in:0
在System.Net.Sockets.Socket + Worker.ReceiveFrom()[0x00000] in:0
由于
答案 0 :(得分:0)
抛出异常的接收,而不是关闭。因为你关闭了它所以扔它。我不知道你还能期待什么。
答案 1 :(得分:0)
try/catch
无效的原因是错误发生在该区块之外。
您正在使用Async
转移,关闭套接字时,您的接收代理会抛出异常。
你是从错误的点终止,从接收委托内部做。
您正在做的就是插上电脑而不是关机。