.net - 阻塞套接字上的 10035 错误

标签 .net sockets

有谁知道在超时的阻塞套接字上读取时什么会导致 10035 错误 (EWOULDBLOCK)?这是在 Windows XP 下使用 .NET 框架 3.5 版套接字库。我自己从来没有设法做到这一点,但我的一位同事一直在得到它。他将相当大量的数据发送到速度慢得多的设备,然后等待响应,这通常会出现 10035 错误。我想知道是否存在 TCP 缓冲区填满的问题,但在那种情况下,我希望读取等待或超时。套接字肯定是阻塞的,不是非阻塞的。

最佳答案

似乎正在发生的事情是在读取超时后重试时发生错误。超时 (10060) 后,我重新发送数据并等待回复。超时似乎将套接字设置为非阻塞模式,即使调试器显示 Blocking set to true on the .Net socket object,我立即收到 10035 错误。如果我在重试 10035 错误消失之前明确地将套接字上的 Blocking 设置为 true。这看起来像是 Winsock 或 .Net 中的一个错误,或者可能是一个功能。

关于.net - 阻塞套接字上的 10035 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1010708/

相关文章:

c# - 列表也返回它不包含的内容

c# SortedSet如何取出一个元素

java - 在 Java 中检测无法访问的主机的最快方法是什么?

c++ - RST 数据包是否会被发送到应用程序而不考虑其序列号?

java - 如何编写代码来通知 XML 文件更改?

c# - 替换字符串中的第一次出现

.net - 如何使用 SandcaSTLe 帮助文件生成器在帮助文件中显示代码示例?

c# - 如何将 Assembly* 值添加回我的可执行文件?

c - TCP 客户端-服务器、ping 和数据包大小

node.js - 如何使用 Websocket 构建可扩展的实时聊天消息传递?