news 2026/5/8 18:21:26

设置socket选项SO_REUSEADDR

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
设置socket选项SO_REUSEADDR

服务器监听socket通常会设置socket选项SO_REUSEADDR,即端口、ip可重用。代码如下:

int reuse = 1; int ret = setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (char*)&reuse, sizeof(reuse));

为什么会设置这个选项呢?
先说结论:
服务器监听 socket 设置 SO_REUSEADDR,是为了解决重启服务器时,端口因 TIME_WAIT 状态被占用,导致监听失败的问题。

回答这个问题,要理解tcp的4次挥手,
第一步,主动关闭方(A),先发送FIN包,进入FIN_WAIT_1状态
第二步,被动关闭方(B),收到FIN,回复ACK包,B进入CLOSE_WAIT状态
第三步,被动关闭放(B),发送FIN包, B进入LAST_ACK状态
第四步,主动关闭放(A),收到FIN包,回复ACK包,A进入TIME_WAIT状态,通常2MSL,B收到ACK包直接关闭
第五步,2MSL超时后,A从TIME_WAIT进入CLOSED状态,端口释放。

在第四步时,端口是占用状态,新的监听socket无法绑定该端口,会失败。

选项的作用:
设置SO_REUSEADDR后,允许新的监听socket绑定处于TIME_WAIT状态的端口,让服务器能快速重启。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/3 16:28:26

【测试面试】2026年软件测试面试题大全(精品带回答的)

前言 软件测试员是在项目的不同阶段一直从事着各种各样的测试,但是当需要测试所需技能状况时,却找不到一个合适的方法。 ……面试时表现自信: 一般说来,面试首先会从了解求职者的概况开始。 然后大多数就是技术问题了。 一、测…

作者头像 李华
网站建设 2026/4/25 2:44:07

python接口自动化测试 | yaml数据驱动参数化,看完这一篇就够了

前言 在yaml之前,程序大多使用json、xml、ini等格式进行数据的描述和传输,这些格式数据类型简单、可读性不好,yaml作为一种数据格式,但是可读性大大提高,方面人类直接编辑、查看里面的内容。 在实际测试过程中&#…

作者头像 李华
网站建设 2026/4/22 2:27:55

ESP32 控制 NRF24L01 2.4G通信例子

NRF24L01 是一款低成本、低功耗的 2.4G 无线通信模块,搭配 ESP32 使用时基于 SPI 通信,通过RF24库可快速实现无线数据收发。本文从实际项目中提取 NRF24L01 核心通信代码,编写纯接收端和纯发送端最小示例,去掉冗余的 WiFi、网页、…

作者头像 李华
网站建设 2026/5/6 23:13:24

不只“除甲醛”:深挖HNOSS产品体系,看专业服务如何守护家庭呼吸安全

在信息纷杂的除甲醛市场,消费者常常陷入技术名词与效果承诺的迷雾。真正的决策依据,应回归可验证、可体验的产品核心优势。本文将以行业专业视角,深度剖析HNOSS如何通过具象化的技术、产品与服务矩阵,将“健康空气”转化为一套值得…

作者头像 李华
网站建设 2026/4/30 21:29:32

2025年商标注册量最多的省和类别,这个又遥遥领先!

近日商标局发布了2025年四季度各省、自治区、直辖市商标注册申请量、注册量按类别统计表,普推知产商标老杨统计分析发现出来在2025年商标注册申请的一些关键数据。商标注册申请量排名前十的省分别是,广东省,浙江省,山东省&#xf…

作者头像 李华