SIGPIPE信号问题

SIGPIPE信号问题
socket编程问题
SIGPIPE信号问题=========================
当服务器close一个连接时,若client端接着发数据。根据TCP协议的规定,会收到一个RST响应,client再往这个服务器发送数据时,系统会发出一个SIGPIPE信号给进程,告诉进程这个连接已经断开了,不要再写了。
   根据信号的默认处理规则SIGPIPE信号的默认执行动作是terminate(终止、退出),所以client会退出。若不想客户端退出可以把SIGP

大家好,又见面了,我是你们的朋友全栈君。

socket编程问题

SIGPIPE信号问题=========================

当服务器close一个连接时,若client端接着发数据。根据TCP协议的规定,会收到一个RST响应,client再往这个服务器发送数据时,系统会发出一个SIGPIPE信号给进程,告诉进程这个连接已经断开了,不要再写了。
    根据信号的默认处理规则SIGPIPE信号的默认执行动作是terminate(终止、退出),所以client会退出。若不想客户端退出可以把SIGPIPE设为SIG_IGN

    如:    signal(SIGPIPE,SIG_IGN);
    这时SIGPIPE交给了系统处理。

  服务器采用了fork的话,要收集垃圾进程,防止僵尸进程的产生,可以这样处理:
  signal(SIGCHLD,SIG_IGN); 交给系统init去回收。
   这里子进程就不会产生僵尸进程了。

另一种处理:SIGPIPE信号的处理
 
signal(SIGPIPE, handle_omsignal);

void handle_omsignal(
        int number)
{

    switch (number)
    {

        default:
        {

            break;
        }
        case SIGPIPE:
        {

            om_alog(error, “omagentd”, “%s”,”Network error!”);
            break;
        }
    }
}

当然若client 端并没有连接到server,是不会发生这种情况的。

=================================================

进程和线程

:线程是进程的一条执行流程,多个线程在进程的资源平台上运行。进程死,则线程必死。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/139389.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月29日 下午9:46
下一篇 2022年5月29日 下午9:46


相关推荐

  • python 制作淘宝秒杀脚本

    python 制作淘宝秒杀脚本1. 安装pycharm。网上教程很多。2. 安装Selenium库。Selenium支持很多浏览器,我选择的是Firefox浏览器。因为我这里是Python3环境,自带的又pip,所以安装selenium直接使用pip安装安装方法:–打开cmd;–输入命令进入Python36/Scripts(找到下图的目录)目录下;–输入命令pipinstalls…

    2022年5月5日
    55
  • eclipse 本地maven_配置maven本地仓库

    eclipse 本地maven_配置maven本地仓库Q1:eclipse集成好的maven怎么配置本地仓库步骤如下:1、下载maven的bin,在apache官方网站可以下载。2、下载下来之后,解压,找个路径放进去,把bin的位置设在环境变量里,新建环境变量MAVEN_HOME。3、在PATH里加入maven的bin的路径。4、配置完毕后,在Windows命令提示符下,输入mvn-v测试一下。5、配置成功后开始在Eclipse中配置Maven,…

    2025年12月11日
    6
  • Go学习——密码学

    Go学习——密码学

    2021年8月30日
    369
  • Trae如何在Visual Studio Code中安装并启用

    Trae如何在Visual Studio Code中安装并启用

    2026年3月15日
    3
  • win10键盘锁住了怎么解决

    win10键盘锁住了怎么解决有win10系统用户在使用的时候,发现键盘被锁住了,导致无法使用,经过分析可能是不小心按到了键盘上的锁住键锁定键盘的快捷键笔记本电脑:Fn+Numlock键第一种方法:1、外接键盘,是否按过“Numlock”键,如果按过“Numlock”键,再次使用外接键盘按一次“Numlock”键,就会恢复正常了。(仅仅锁定或者解锁数字键盘)2、可以在电脑键盘中找到“Fn”键,这个键又被称为“第二功能键”,因为当你按下这个键,再去按另一个带有两种功能的键时,那个键就会出现第二种功能。3、再找到“F.

    2022年5月29日
    64
  • ipconfig/flushdns的使用

    ipconfig/flushdns的使用项目升级的时候 经常会停服 外部不能访问网站 内部开发和测试人员会绑定指定 ip 并且在 host 文件增加这个指定 ip 域名解析 当测试完成 恢复以前的 host 文件 这时候刷新浏览器 可以没有变化 还是访问之前测试的 ip 这有可能存在 DNS 解析缓存 这个时候可以使用 ipconfig flushdns 命令清楚 DNS 解析缓存 如下图 ipconfig 属于 DOS 命令 其实 ifc

    2026年3月19日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号