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 |
over the socket? Is there a way to have a dynamic buffer? What does one do when one does not know how much information is coming?
How can I find the full hostname (FQDN) of the system I am running on?
What is LILO?
How can I force a socket to send the data in its buffer?
Why do I get EPROTO from read()?
Can a single socket port be used for multiple applications?
How is a socket created?
Why do I keep getting EINTR from the socket calls?
What are Sockets?
How come select says there is data, but read returns zero?
What is socket programming in java?
What is a socket connection?