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


相关推荐

  • 发html邮件乱码 java,Java发送邮件时标题和发件人乱码

    发html邮件乱码 java,Java发送邮件时标题和发件人乱码#Java发送邮件时标题和发件人乱码最近碰到一个问题,Java发送邮件时,查看邮箱结果,发件人及邮件标题正文全部乱码通过翻阅资料,原因及解决方法如下:“`//SetSubject:头字段message.setSubject(MimeUtility.encodeText(mail,MimeUtility.mimeCharset(“gb2312”),null));//设置邮件发送日期m…

    2022年5月14日
    73
  • 迭代器Python_Python进阶

    迭代器Python_Python进阶迭代器迭代是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。可迭代对象我们已经知道可以对l

    2022年7月30日
    7
  • UML图:活动图详细介绍

    UML图:活动图详细介绍活动图简介什么是活动图(ActivityDiagram)活动图是UML用于对系统的动态行为建模的另一种常用工具,它描述活动的顺序,展现从一个活动到另一个活动的控制流,活动图在本质上是一种流程图;活动图着重表现从一个活动到另一个活动的控制流活动图元素动作状态(ActionState)动作状态是指原子的,不可中断的动作,并在此动作完成后通过完成转换转向另一个状态在UML中的动作状态图用平滑的圆角矩形表示动作状态的特点动作状态是原子的,无法分解为更小的部分动作状态是不可中断的,一旦开始

    2022年5月1日
    53
  • JPG 的图片格式详解

    JPG 的图片格式详解JPGjpg 全名是 JPEG JPEG 图片以 24 位颜色存储单个光栅图像 JPEG 是与平台无关的格式 支持最高级别的压缩 不过 这种压缩是有损耗的 渐近式 JPEG 文件支持交错 jpg 功能 可以提高或降低 JPEG 文件压缩的级别 但是 文件大小是以牺牲图像质量为代价的 压缩比率可以高达 100 1 JPEG 格式可在 10 1 到 20 1 的比率下轻松地压缩文件 而图片质

    2025年10月8日
    5
  • 状态模式state_解释器模式

    状态模式state_解释器模式状态模式 State动机模式定义实例结构要点总结笔记动机在软件构建过程中,某些对象的状态如果改变,其行为也会随之而发生变化,比如文档处于只读状态,其支持的行为和读写状态支持的行为就可能不同.如何在运行时根据对象的状态来透明地更改对象的行为?而不会为对象操作和状态转换之间引入紧耦合模式定义允许一个对象在其内部状态改变时改变它的行为.从而使对象看起来似乎修改了其行为.从而使对象看起来似乎修改了其行为.从而使对象看起来似乎修改了其行为.实例朴素根据状态来执行下一步enum NetworkStat

    2022年8月9日
    7
  • Tfs权限设置_设置朋友圈权限对方知道吗

    Tfs权限设置_设置朋友圈权限对方知道吗tfs账号分两种情况,一种是基于AD域的 一种是基于Windows账号要使用基于AD域的,tfs必须基于域用户安装。一般会单独建一个tfs的域帐号用来管理tfs用。基于windows的多数都是直接用administrator账号了。tfs增加用户的时候,基于域的直接选择域用户,基于windows账号的直接选择本机的windows账号即可添加用户到tfs后,可

    2025年7月29日
    5

发表回复

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

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