Does anyone have any idea what could cause a 10035 error (EWOULDBLOCK) when reading on a blocking socket with a timeout? This is under Windows XP using the .NET framework version 3.5 socket library. I've never managed to get this myself, but one of my colleagues is getting it all the time. He's sending reasonably large amounts of data to a much slower device and then waiting for a response, which often gives a 10035 error. I'm wondering if there could be issues with TCP buffers filling up, but in that case I would expect the read to wait or timeount. The socket is definitely blocking, not non-blocking.
What seems to be happening is that the error occurs when retrying after a timeout on a read. After the timeout (10060) I re-send data and wait for a reply. The timeout seems to set the socket to non-blocking mode, even though the debugger shows Blocking set to true on the .Net socket object, and I immediately get the 10035 error. If I explicitly set Blocking to true on the socket before retrying the 10035 error goes away. This looks like a bug, or possibly a feature, in Winsock or .Net.
probably it is a Mono bug. I just fired it.
https://bugzilla.novell.com/show_bug.cgi?id=599488
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With