SOCKET 优雅的关闭套接字 发布人: sanye 时间: 2021-02-19 分类: 网络SOCKET编程 ## 前言 优雅的关闭 socket 或 粗暴的关闭 socket | 函数 | 描述 | | ------------ | ------------ | | close 函数 | 关闭 TCP 两个方向的数据流。 | | shutdown 函数 | 帮助我们关闭连接的一个方向 | ### howto 参数 | 参数 | 描述 | | ------------ | ------------ | | SHUT_RD(0) | 关闭连接的“读”这个方向,对该套接字进行读操作直接返回 EOF。对端还是会接收到 ACK,在这种情况下根本不知道数据已经被丢弃了。 | | SHUT_WR(1) | 关闭连接的“写”这个方向,这就是常被称为”半关闭“的连接。此时,不管套接字引用计数的值是多少,都会直接关闭连接的写方向。 | |SHUT_RDWR(2)|相当于 SHUT_RD 和 SHUT_WR 操作各一次,关闭套接字的读和写两个方向。| ### close 和 shutdown 区别 | 属性 | close |shutdown | | ------------ | ------------ |------------| | 资源 | close 会关闭连接,并释放所有连接对应的资源 |shutdown 并不会释放掉套接字和所有的资源。| | 引用计数 | close 存在引用计数的概念,并不一定导致该套接字不可用 |shutdown 则不管引用计数,直接使得该套接字不可用,如果有别的进程企图使用该套接字,将会受到影响。| |报文|close 的引用计数导致不一定会发出 FIN 结束报文|shutdown 则总是会发出 FIN 结束报文,这在我们打算关闭连接通知对端的时候,是非常重要的| 标签: 函数, 前言, 操作, socket, 连接, 关闭, shutdown, close, 计数 取消回复 添加新评论 阁下尊名? 📮邮箱(选填) 博客/主页(选填) 大侠请赐教 !支持Markdown格式 spam 以上是我的留言/建议,提交! 上一篇: TIME_WAIT 的优化方式 下一篇: 心跳检测 最新文章 阻塞和非阻塞IO,多路复用,异步IO之间的区别,以及不同函数之间的应用poll 函数 -多路复用多路复用 selectMSL TTL backlogtcp_tw_reuse 和SO_REUSEADDR区别 最近回复 sanye: 备注一下,最新版本的优化启动不了,安装最新版,请不要导入之前版本的设置 sanye: 感谢你的支持 asd: 安装某个开源邮箱软件时碰到这个问题,但是还是不要手动安装了吧? 夏目贵志: 大佬,加油!! wing: 打开速度有点慢这是条建议测试 分类 疑难杂症coding技巧ios机器学习Prolog深度学习增强现实数据分析财商笔记架构心经编译原理RHCA笔记RHCEAnsible小书常用命令数学常数绘图UML图范式编程函数式Erlang知识库C++Vue网络网络SOCKET编程 标签云 前言 系统 代码 文件 命令 核心 架构 模块 功能 变量 函数 接口 版本 内容 业务 依赖 行 设计 install 目录 周边 机制 windows 字符 操作 程序 网络 子系统 原则 int 其它