论close()与signal(SIGPIPE,SIG_IGN)对服务器的重要性

一、close()与singa(SIGPIPE,SIG_IGN)的作用

1.Close是什么?

close():释放文件描述符,回收连接资源,避免句柄泄漏

2.SIGPIPE是什么?

SIGPIPE = 管道破裂信号

触发条件:往一个已经断开的连接(socket / 管道)写数据

默认行为:直接杀死进程!

3.SIG_IGN是什么?

SIG_IGN = Signal Ignore → 忽略信号

  • 它是一个宏定义 ,代表:收到信号不处理、不崩溃
  • 作用:告诉操作系统:这个信号来了直接丢掉,不要影响进程

二、二者在服务器的具体体现

1.close()

在我们的四次挥手中,如果我们的客户端断开连接,但是在服务器处于CLOSE_WIAT状态,由于没有close,所以我们服务器会一直处于CLOSE_WAIT状态,从而导致资源一直在浪费,相当于内存泄漏。

2.singa(SIGPIPE,SIG_IGN)

singal函数在我的文章中Linux分栏里面信号章节介绍过,感兴趣可以看看。

这个函数配上SIGPIPE与SIG_IGN相当于忽略SIGPIPE信号的默认行为。也就是当我们客户端断开,但是我们服务端不小心给与该客户端建立的文件描述符通信时,我们OS会给服务端一个SIGPIPE信号,让其终止该进程。而我们用了该函数相当关于忽略了OS的信号,从而进程不会被终止,要知道我们一个服务器是希望可以长久运行的,不能轻易断开

相关推荐
fengkai454525 分钟前
十一、MySQL 第 1‑3 章
运维·数据库·mysql
wusam25 分钟前
计算机网络第二章习题解答
服务器·网络·计算机网络
EasyGBS31 分钟前
国标监控PS流是什么?GB28181视频平台EasyGBS视频封装全链路讲解
服务器·音视频·gb28181
Vcaker1 小时前
Linux学习36-k8s集群升级及kube-vip高可用
linux·运维·学习
土星云SaturnCloud1 小时前
边缘计算 + AI 视频存管一体机:快递末端网点分拣提效与安全管控实战方案
服务器·人工智能·ai·边缘计算
wdfk_prog1 小时前
Wi-Fi Direct教程 02:从 wpa_cli main() 到 P2P_FIND——用源码注释追踪 CLI 控制命令发送
运维·服务器·网络·网络协议·ubuntu·p2p·wifi-direct
DD云验证1 小时前
DD云验证,免费网络验证系统
服务器·python·易语言·网络验证·卡密验证
HRTOS2 小时前
HRTOS Shell继续完善:优化printf缓冲区与字符串越界保护,国庆后随新版本更新
运维·单片机·嵌入式硬件·算法·51单片机
智能RPA2 小时前
农业与矿业行业智能体自动化平台对比评测(计量与巡检场景)
运维·人工智能·python·自动化·agent·rpa
沫璃染墨2 小时前
《从零入门Linux系统篇(五十一):线程篇·四——pthread线程库详解:从线程创建到终止与分离》
linux·运维·服务器·开发语言·c++·系统架构·线程