How do I change a TCP socket to be non-blocking?
c, sockets
Solution
What do you mean by "not always reliable"? If the system succeeds in setting your socket non non-blocking, it will be non-blocking. Socket operations will return `EWOULDBLOCK` if they would block need to block (e.g. if the output buffer is full and you're calling send/write too often).
This forum thread has a few good points when working with non-blocking calls.
Problem
How do you make a socket non-blocking? I am aware of the `fcntl()` function, but I've heard it's not always reliable.