关闭连接的⽅式通常有两种,分别是
RST
报⽂关闭和
FIN
报⽂关闭。
如果进程异常退出了,内核就会发送
RST
报⽂来关闭,它可以不⾛四次挥⼿流程,是⼀个暴⼒关闭连接的⽅式。
安全关闭连接的⽅式必须通过四次挥⼿,它由进程调⽤
close
和
shutdown
函数发起
FIN
报⽂(
shutdown
参数须传⼊ SHUT_WR
或者
SHUT_RDWR
才会发送
FIN
)。
1
、
close
和
shutdown
有什么区别
调⽤了
close
函数意味着完全断开连接,完全断开不仅指⽆法接收数据,⽽且也不能发送数据。
此时,调⽤了
close
函数的⼀⽅的连接叫做「孤⼉连接」,如果你⽤
netstat -p
命令,会发现连接对应的进程名为空。
使⽤
close
函数关闭连接是不优雅的。于是,就出现了⼀种优雅关闭连接的
shutdown
函数,它可以控制只关闭 ⼀个⽅向的连接
其中第⼆个参数决定断开连接的⽅式,主要有三种:
(

最低0.47元/天 解锁文章
1562

被折叠的 条评论
为什么被折叠?



