18
Socket error 10035 – Resource temporarily unavailable
This error happens when the winsock buffer of either the client or server side become full. It is a nonfatal error, and it is normal for WSAEWOULDBLOCK to be reported as the result from calling connect on a nonblocking SOCK_STREAM socket, since some time must elapse for the connection to be established.

Which are the causes for error 10035?
• You’re trying to send a massive amount of information through the socket, so the output buffer of the system becomes full.
• You’re trying to send data through the socket to the remote host, but the remote host input buffer is full (because it’s receiving data slower than you’re sending it).
When you send data – you really send it to the TCP/IP subsystem of your machine (ie winsock). The system buffers this data (in the OutBuffer) and begins sending it to the remote host as fast as it can (which of course is only as fast as the receiver can receive it). If the OutBuffer gets filled, because you are sending data faster than the system can send it – you’ll get Winsock error 10035.
In order to deal with this when using IPPort or IPDaemon, just catch the Winsock 10035 error and wait for the component’s ReadyToSend event to fire (this fires when the system is able to send data again). At that time, you can continue sending your data, starting with that which failed. For example (C# – if you need help with other languages let me know), the code below will loop until the length of the data to be sent is 0. If all goes normally, this loop will only be entered once and all of the data will be sent. After a while, if the input buffer fills up, the SetDataToSend inside the loop will fail with the Winsock 10035 error. The code will wait for the ReadyToSend event (the ready boolean flag), and loop. SetDataToSend will be called again, successfully.
Resources:
Winsock error 10035 means “Resource not available” or “Operation would block”
Download the Socket Error Repair Tool


[...] Socket error 10035 – Resource temporarily unavailable This error happens when the winsock buffer of either [+] [...]