socket编程(10)

close 与 shutdown 区别

  • close终止了数据传送的两个方向

    • close A 之后,既不能往A中写入数据,也不能从A读取数据。
    • A不能发送给B,B可以发给A,A发送RST表示连接重置,B收到RST之后,如果再次调用write,就会产生SIGPIPE信号
  • 可以将TCP看成全双工管道

  • shutdown可以可以有选择的终止某个方向数据传送或者2个方向

    ​ - shutdown:how=1关闭写的一端,可以保证对等方接收到EOF段,不理会引用计数shutdown(conn,SHUT_WR), 而不管其他进程是否已经打开了套接字。而close不能保证,知道套接字引用计数减为0时才发送。也就是说所有的进程都关闭了套接字。

进一步改进回射客户程序

  • Ctrl+c是强制中断程序的执行。

  • Ctrl+z的是将任务中断,但是此任务并没有结束,他仍然在进程中他只是维持挂起的状态

  • Ctrl+d 不是发送信号,而是表示一个特殊的二进制值,表示 EOF。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值