How would I put my socket in non-blocking mode?
Answer / chaitanya
Technically, fcntl(soc, F_SETFL, O_NONBLOCK) is incorrect since it clobbers all other file flags. Generally one gets away with it since the other flags (O_APPEND for example) don't really apply much to sockets. In a similarly rough vein, you would use fcntl(soc, F_SETFL, 0) to go back to blocking mode.
To do it right, use F_GETFL to get the current flags, set or clear the O_NONBLOCK flag, then use F_SETFL to set the flags.
And yes, the flag can be changed either way at will.
| Is This Answer Correct ? | 1 Yes | 0 No |
How many sockets can a port have?
When will my application receive SIGPIPE?
Is there any advantage to handling the signal, rather than just ignoring it and checking for the EPIPE error? Are there any useful parameters passed to the signal catching function?
What is difference between socket () and serversocket () class?
What is the difference between a socket and a port?
What is the difference between connected and unconnected sockets?
What are socket exceptions? What is out-of-band data?
What is a deep well socket?
Can a single socket port be used for multiple applications?
Why do we need socket programming?
Why do we need sockets?
Is socket a hardware or software?