TCP编程中的shutdown和close的区别

shutdown, SHUT_RD

socket不可读,可写;接收缓冲区中的数据将丢失;再接收到的任何数据由TCP丢失。

shutdown, SHUT_WR

socket可读,不可写;发送缓冲区中的内容被发送到对端,后跟正常的TCP连接终止序列(FIN)。

close, l_onoff =0

(缺省情况)

socket不可读,不可写;接收缓冲区中的数据被丢弃;发送缓冲区中的内容被发送到对端,如果描述字引用计数变为0,在发送完缓冲区的数据后跟正常的TCP终止序列(FIN)

close, l_onof =1, l_linger=0

socket不可读,不可写;接收和发送缓冲区中的数据均被丢弃;如果描述字引用变为0RST被发送到对端;连接的状态被置为CLOSED(没有经过TIME_WAIT状态)。

close, l_onoff=1, l_linger!=0

socket不可读,不可写;接收缓冲区中的数据被丢弃;发送缓冲区中的内容被发送到对端,如果描述字引用计数变为0,在发送完缓冲区的数据后跟正常的TCP终止序列(FIN);如果在连接变为CLOSED状态前延滞时间到,那么close返回EWOULDBLOCK错误


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值