socket编程——关闭(shutdown 和 close的区别)

来源:互联网 发布:打车软件 补贴大战 编辑:程序博客网 时间:2024/06/13 22:30

socket的关闭有close 和shutdown两种API,那么他们的区别在哪里呢?


close   ----- 在多进程的情况下,关闭本进程的socket id,但链接还是开着的,用这个socket id的其它进程还能用这个链接,能读或写这个socket id,直到所有的进程都进行了                            close,才真正关闭这个套接字,但当他真正执行关闭的时候是完全关闭,既不处理发送也不处理接收数据,如果对端发送数据过来会收到RST消息。

shutdown  --  即便在多进程的情况下面,也是直接进行关闭的,破坏了socket 链接,其他进程的链接也会被关闭,但他关闭的时候只关闭一般,即发送数据通道关闭,接收数据还                         是可以的。如果写则可能会收到一个SIGPIPE信号,这个信号可能直到socket buffer被填充了才收到。

0 0
原创粉丝点击