确定UdpClient.Receive中的SocketException是否是由于超时引起的

杰森c

我有一个UdpClient设置了超时接收数据,例如:

UdpClient client = new UdpClient(new IPEndPoint(IPAddress.Any, 12345));
client.Client.ReceiveTimeout = 5000;     // 5 second timeout

while (!shutdown) {
    IPEndPoint source = null;
    byte[] data = client.Receive(ref source);  
}

Receive记录为抛出一个SocketException“如果访问套接字时发生错误”。如果同步操作超时,则设置的行为ReceiveTimeout记录为抛出a SocketException

如果我SocketExceptionReceive设置超时的时候得到一个信息,我如何确定该异常是否是由于超时而不是更严重的错误引起的?

我确实确认了超时引发的异常是实际的,SocketException而不是它的某些特定子类。我唯一能想到的就是检查异常消息,这是我并不十分兴奋的hack。

乡村科技

您需要检查SocketException.ErrorCode属性的值10060WSATIMEDOUT)。

ErrorCode您可以在这里找到值的完整列表https : //docs.microsoft.com/windows/win32/winsock/windows-sockets-error-codes-2

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

是否应该处置UdpClient?

来自分类Dev

UDPClient.Receive()停止运行任何代码

来自分类Dev

NET UdpClient / UDPServer中的传入消息是否会自动截断?

来自分类Dev

确定查询超时的原因

来自分类Dev

sock = new UdpClient(ipAny)导致错误> System.Net.Sockets.SocketException已引发。拒绝访问

来自分类Dev

如何确定延迟是由于驱动程序还是调度程序引起的?

来自分类Dev

如何确定八度音阶中引起警告的位置?

来自分类Dev

如何确定哪个“ \”引起错误?

来自分类Dev

我如何确定我的sudoer权限是否超时?

来自分类Dev

PowerShell:如何确定Invoke-WebRequest是否超时?

来自分类Dev

我如何确定我的sudoer权限是否超时?

来自分类Dev

C#应用程序未在UDPClient.Receive上接收数据包

来自分类Dev

确定矩阵是否稀疏?

来自分类Dev

确定python是否退出

来自分类Dev

确定PDF是否损坏

来自分类Dev

确定TensorFlow中的值是否在集合中

来自分类Dev

由于Tcl-tk中的窗口大小,隐藏了“确定”按钮

来自分类Dev

确定Laravel 5中是否存在文件

来自分类Dev

确定特定的DateTime是否在DST中

来自分类Dev

确定颜色是否在轮廓OpenCV中

来自分类Dev

资源在Android中是否最终确定?

来自分类Dev

确定属性是否为Django中的DeferredAttribute

来自分类Dev

确定朋友是否在朋友列表中

来自分类Dev

确定类别是否在Magento中是新的

来自分类Dev

确定闭包在PHP中是否是静态的

来自分类Dev

确定Shapely点是否在LineString / MultiLineString中

来自分类Dev

确定嵌套对象是否在列表中

来自分类Dev

确定模板在emberjs中是否存在

来自分类Dev

确定ActiveCell是否在特定表中

Related 相关文章

热门标签

归档