What is the difference between close() and shutdown()?
Unix Socket FAQ for Network programming
(Continued from previous question...)
What is the difference between close() and shutdown()?
Generally the difference between close() and shutdown() is: close()
closes the socket id for the process but the connection is still
opened if another process shares this socket id. The connection stays
opened both for read and write, and sometimes this is very important.
shutdown() breaks the connection for all processes sharing the socket
id. Those who try to read will detect EOF, and those who try to write
will reseive SIGPIPE, possibly delayed while the kernel socket buffer
will be filled. Additionally, shutdown() has a second argument which
denotes how to close the connection: 0 means to disable further
reading, 1 to disable writing and 2 disables both.
(Continued on next question...)
Other Interview Questions
|