繁体   English   中英

用于关闭UDP套接字的SocketException

[英]SocketException for closing a UDP Socket

我有一个用C#编写的库,已在WP7 / iOS / Windows Apps中使用它。 它适用于Mono,因为我仅使用UdpClient而已。 它是一个开放源代码库,可自动查找对等项。 您可以在salaam.codeplex.com上找到它

现在,我只是想将我的应用程序移植到Android。 当我找到同龄人时,我只想关闭UDP连接并转到另一个活动,但是当我关闭套接字时,尽管我将它放在try catch短语中,但它抛出SocketException并退出。

我该怎么做才能防止这种情况?

如果完成该活动,则调用SalaamBrowser.Close();会给您该异常SalaamBrowser.Close(); 一样的。

例外文字:

未处理的异常:System.Net.Sockets.SocketException:在System.Net.Sockets.Socket.ReceiveFrom_nochecks_exc处中断(System.Byte [] buf,Int32偏移量,Int32大小,SocketFlags标志,System.Net.EndPoint&remote_end,布尔型throwOnError,系统.Int32&error)[0x00000] in:0

在System.Net.Sockets.Socket.ReceiveFrom_nochecks(System.Byte [] buf,Int32偏移量,Int32大小,SocketFlags标志,System.Net.EndPoint&remote_end)中:[0x00000],位于:0

在System.Net.Sockets.Socket + Worker.ReceiveFrom()在[0x00000]中:

谢谢

引发异常的是接收而不是关闭。 它是因为您将其关闭而抛出的。 我不知道你还能期待什么。

您的try/catch不起作用的原因是该块之外发生了错误。

您正在使用Async传输,并且在关闭套接字时,接收委托会引发异常。

您从错误的点终止,请从内部接收委托执行。

您正在做的事情就像拔出计算机而不是关闭计算机。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM