Linux编程send函数,网络异常导致程序退出解决办法_黄大刀的博客-程序员秘密

技术标签: LINUX编程  

发现调用send函数时,如果远端的socket异常中断的时候,会导致send异常,并退出,这是不允许的。

原因是网络异常的时候,系统会触发一个底层信号SIGPIPE ,如果没有函数接口处理这个信号的话,就会导致程序异常退出。

解决办法,最简单的办法:禁用这个信号,也就是调用send的时候,使用MSG_NOSIGNAL标志,例如:

if (send(comm->comm_fd, DatInf, DatLen, MSG_NOSIGNAL) <= 0) {
				printf("发送失败\r\n");
}

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/shjhuang/article/details/104565953

智能推荐

java.sql.SQLSyntaxErrorException: Unknown column ‘XXX_XXX‘ in ‘field list‘_guoyp2126的博客-程序员秘密

做测试时,代码如下POST http://localhost:8080/yc/feedback/save123Content-Type: application/json{ "recid": 1, "title": "werewrewrewrew", "type" : "数据库chengdu", "questionDesc": "wioeuroiweurouewo", "solution": "kjdshfkjdsfhdskfhkds", "status": "1", "

Nodejs服务器管理模块forever_龙的传人之嘟嘟的博客-程序员秘密

Posted:Sep 26, 2013Tags:forevernodejs服务器管理Comments:29 CommentsNodejs服务器管理模块forever从零开始nodejs系列文章,将介绍如何利Javascript做为服务端脚本,通过Nodejs框架web开发。Nodejs框架是基于V8的引擎,是目前速度最快的Javascript引擎。chrome浏览器就基...

如何优雅地使用Sublime Text3_扶摇万仞的博客-程序员秘密

原文地址:http://liuyanzhao.com/1892.html

交叉编译内核模块时 Makefile 文件的编写_longyu_wlz的博客-程序员秘密_交叉编译makefile编写

在 x86 服务器上交叉编译 arm64 的单个内核模块前几天帮助同事交叉编译了一个 arm64 的内核模块,在这里记录一下关键的步骤。交叉编译内核修改 Makefile 文件后编译修改的 Makefile 文件内容如下:KERNELDIR :=pathPWD :=$(shell pwd)obj-m += xxxx.oall: make CROSS_COMPIL...

分割一个装有多组数据List集合,并将其每组数据分别存放至不同的List集合中_w32718155的博客-程序员秘密

在工作中,我们经常会遇到一个装有多组数据List集合,此时,我们需要将其取出,然后存放至不同的List当中,对其进行分类存放,然后后续对该数据进行处理。

opencv、VINS-mono在Ubuntu 20.04上安装过程中遇到的问题总结_乘凉~的博客-程序员秘密

因为需要在Ubuntu 20.04上安装运行港科大的VINS-mono,所以必须先安装opencv 3.3.1、Eigen xxx 以及ceres xxx,现记录安装过程中遇到的问题。此贴专门用来记录安装过程中遇到的问题及解决方法,至于opencv、Eigen、ceres以及VINS-mono的安装过程请参考另一篇博客:链接:1、编译opencv遇到的问题错误1:宏未定义错误描述:In file included from /home/acl/111/opencv-3.3.1/modules/vid

随便推点

JSP用bean获取各种参数_dyjl828的博客-程序员秘密

本篇文章由泉州SEOwww.234yp.com 整理发布,jsp入门教程www.234yp.com/Article/176224.html谢谢合作!jsp入门教程  1.包:  package beanpackage;  /**  *  * @author lucifer  */  public class SystemProperties {  public String getRuntimeEnvironmentVersion(){  return System.getP...

Qtcreator远程调试出现“The selected build of GDB does not support Python scripting.It cannot be used .."_五香花生米的博客-程序员秘密

之前使用的是Qt4.7后来换成了Qt5.x,Qtcreator的版本使用4.0,使用中发现Qtcreator远程调试出现“The selected build of GDB does not support Python scripting.It cannot be used in Qt Creator.”    意思是gdb不支持Python脚本不能再Qtcreator中使用。有问题

单例模式(日常笔记1)_oldfour_0830_9674的博客-程序员秘密_单例模式的生活例子

定义单例模式的定义是:保证一个类仅有一个实例,并提供一个访问它的全局访问点。生活中例子当我们在电脑上玩经营类的游戏,经过一番眼花缭乱的骚操作好不容易走上正轨,夜深了我们去休息,第二天打开电脑,发现要从头玩,立马就把电脑扔窗外了,所以一般希望从前一天的进度接着打,这里就用到了存档。每次玩这游戏的时候,我们都希望拿到同一个存档接着玩,这就是属于单例模式的一个实例。使用的场景有一些对象我们往往只需要一个,比如线程池、全局缓存、浏览器中的 window 对象等。实现单例模式要实现一个标准

【调剂】重庆科技学院2021年硕士研究生招生预调剂意向登记公告_计算机与软件考研的博客-程序员秘密

点击文末的阅读原文或者公众号界面左下角的调剂信息或者公众号回复“调剂”是计算机/软件等专业的所有调剂信息集合,会一直更新的。信息来源网址:http://yjs.cqust.edu.cn/i...

linux shell脚本自动批量解压文件_JAVA拾贝的博客-程序员秘密_shell 批量解压

单个文件解压很简单,批量不确定目录的压缩包呢?解压到原路径?解压后删除原压缩包?本脚本可一键解决以上所有问题linux shell脚本自动批量解压文件

解决vue项目elemenui样式修改失效_qq_42259086的博客-程序员秘密

1、显示如果没有引用scss 修改elemenUI样式要写在vue.app中才可以生效2、打包后(1)样式未生效和main.js中的引用顺序有关注意:要在app前引用elementUI样式(2)尽量使用elementui官网给出的参数修改...

推荐文章

热门文章

相关标签