Answer Posted / 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 |
Post New Answer View All Answers
What is socket programming in java?
Why do we need socket programming?
Why does the sockets buffer fill up sooner than expected?
Are unix sockets faster than tcp?
What is the difference between read() and recv()?
What is a deep well socket?
How is a socket created?
How many sockets can a port have?
Is a socket a file?
Why sockets are used?
Can multiple sockets use the same port?
What is a socket api?
What is a socket file?
What is the difference between a socket and a port?
What is difference between socket () and serversocket () class?