阻塞套接字上出现10035错误

时间:2009-06-18 03:56:09

标签: .net sockets

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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

可能是Mono bug。我刚把它解雇了。

https://bugzilla.novell.com/show_bug.cgi?id=599488

答案 2 :(得分:0)

http://www.lancerobinson.net/archive/2005/07/20/WinsockError10035.aspx

  

winsock时会发生此错误   客户端或服务器的缓冲区   一边变满了。