本文共 407 字,大约阅读时间需要 1 分钟。
shutdown能做哪些close做不了的事呢? 我们来看看。
shutdown能力之一:
我们知道, 当在socket上调用close的时候, 就会终止socket进行读数据操作和写数据操作。 但是, tcp毕竟是全双工的, 你这样直接关闭两个方向, 真的好吗? shutdown就聪明多了, 参数提供了一个选项, 可以让应用程序自己来指定关闭的方向。 这就是tcp的半关闭状态。
shutdown能力之二:
在fork多进程并发的服务器中, 父子进程共享着socket文件表, 而且采用了引用计数的原理。 如果父进程close掉共享的socket, 那么实际上只是让引用计数从2减为1, 不会发FIN包。 这是预期的行为。 而如果一定要一次性关闭而不受引用计数的影响, 那该怎么办呢? 那就用shoundown吧, 调用一次, 就会发FIN. 然而, 在多进程并发服务器中, 这并不是预期的行为。
先说这么多。
转载地址:http://onwti.baihongyu.com/