MSG_NOSIGNAL
linux下当连接断开,还发数据的时候,不仅send()的返回值会有反映,而且还会像系统发送一个异常消息,如果不作处理,系统会出 BrokePipe,程序会退出。为此,send()函数的最后一个参数可以设MSG_NOSIGNAL,禁止send()函数向系统发送异常消息。
在服务端sleep时,由于客户端断线,将导致send失败。由于使用了MSG_NOSIGNAL标志,程序不会直接DOWN掉,但那个nowait显然没有起到应有的作用,它会一直阻塞。
通过查看ACE源码(ACE.cpp)可以看到,这个值其实是相对于当前时间的长度,send和recv函数里会对这个值加上ACE_OS::gettimeofday()的值,真正超时应该是在35年以后了。。。所以这个用法是错误的,正确用法是:
// in function handle_input
....
char buf[1024];
ACE_Time_Value nowait (ACE_Time_Value::zero);
int recv_len = peer.recv (buf, 1024, MSG_NOSIGNAL, &nowait);
ACE_OS::sleep (5);
peer().send (buf, recv_len, MSG_NOSIGNAL, &nowait);
分享到:
相关推荐
Ace Admin 是一个强大的前端框架,专为开发企业级Web应用后台管理系统而设计。这个框架以其高效、可定制性高和用户界面友好而受到广大开发者欢迎。Ace Admin 的核心是基于Bootstrap,一个流行的前端开发框架,这使得...
**ACE完整牛逼定时器详解** ACE(Adaptive Communication Environment)是一个开源的、跨平台的C++库,专为分布式实时系统设计,提供了一系列高级网络编程接口和工具。在这个“ACE完整牛逼定时器”中,我们将深入...
ace.js编辑器是一个功能强大的开源代码编辑器,它以JavaScript为基础,并通过浏览器提供丰富的编辑功能。以下是关于ace.js编辑器的详细描述: 首先,ace.js编辑器支持多种编程语言,包括但不限于JavaScript、HTML、...
Bootstrap Ace Tab是一个基于Bootstrap和ACE框架的前端页面模板,用于实现管理界面的页签功能。Ace是一个功能丰富的代码编辑器,而Bootstrap则是一个流行的前端开发框架,提供了响应式布局和一系列预先设计的组件。...
ACE库,全称为Adaptive Communication Environment,是一款强大的跨平台网络编程框架,由Dr. Douglas C. Schmidt领导的团队在1995年开发。这个库主要用于构建高度可靠、可伸缩和可移植的分布式系统。ACE库的核心理念...
ACE Admin 是一个强大的后台管理模板,它基于 Bootstrap 框架构建,提供了丰富的组件和功能,使得开发者可以快速地构建高效、美观的Web管理界面。官方文档是学习和使用 ACE Admin 的重要参考资料,包含了所有组件的...
《ACE程序员指南:网络与系统编程的实用设计模式》是ACE资料系列的第五部分,对于深入理解和应用ACE框架至关重要。这本书是ACE学习者的必备读物,尤其适合那些希望提升网络和系统编程技能的开发者。 ACE(Adaptive ...
ACE JavaScript 插件是一款强大的代码编辑器,常用于在线编程环境、代码片段分享网站和开发者工具。它以其高效的性能、丰富的语言支持以及高度可定制性而受到开发者的喜爱。本篇将详细介绍ACE插件的核心特性、如何...
- `ace-elements.js`、`ace-extra.js`:可能是ACE_ADMIN框架中定制的JavaScript插件或者功能模块。 - `ace.js`:ACE_ADMIN框架的主要JavaScript文件,它可能包含了框架的核心功能和API。 5. 在HTML结构中,可以...
Ace Admin是一款基于Ace框架的后台管理系统模板,它提供了丰富的UI组件和优雅的界面设计,适合开发Web应用的管理后台。在“Ace Admin Tab页实现”这个主题中,我们将深入探讨如何利用Ace框架来构建和管理Tab页功能。...
### ACE自适配通信环境关键技术知识点 #### 一、ACE简介 ACE(Adaptive Communication Environment,自适配通信环境)是一种面向对象(Object-Oriented, OO)的工具包,旨在帮助开发者简化通信软件的开发过程。ACE...
ACE(Adaptive Communication Environment)是一个跨平台的网络编程框架,由Dale Schurmann和Douglas C. Schmidt等人开发,广泛应用于分布式系统和实时网络应用。这个“ACE.rar”压缩包包含了ACE网络库的相关资源,...
AceEditor是一款广受欢迎的前端代码编辑器,以其高性能和丰富的API功能著称。这款编辑器支持多种编程语言的代码高亮显示,适用于构建在线代码编辑器、开发者工具或任何需要文本编辑功能的Web应用。在官方文档无法...
根据提供的文件信息,“ace各个版本下载地址”,我们可以深入探讨ACE软件的不同版本以及如何获取它们。 ### ACE软件简介 ACE(Adaptive Communication Environment)是一个开放源代码的中间件框架,主要用于高性能...
Ace Editor 是一个强大的开源代码编辑器,常用于Web应用程序中,提供丰富的文本编辑功能。它由Ajax.org B.V.开发,最初是Cloud9 IDE的一部分,现在已成为独立的项目,广泛应用于各种在线编程环境和代码编辑工具。这...
《ace技术内幕:深入解析ace架构设计与实现原理》从构架模式、编程示例和源代码3个维度系统地对经典网络框架ace(adaptivemunicationenvironment)的架构设计和实现原理进行了深入分析,它能解决4个方面的问题:,...
Ace 前端框架是一款专为后台开发人员设计的强大工具,它填补了开发者在前端技能上的空白,使得那些专注于后端技术的工程师也能轻松应对前端开发任务。Ace 框架以其高效、易用和丰富的功能特性,成为了许多开发团队的...
Ace+Admin前端框架是一款广泛应用在企业级Web应用中的开源UI框架,它结合了Ace和AdminLTE两个优秀的前端组件库,提供了丰富的界面元素、布局选项和交互设计,旨在为开发者提供一个高效、美观且易于定制的开发环境。...
Ace Admin是一款广受欢迎的开源后台模板,专为Web应用程序设计,尤其适合开发人员构建管理界面。这个资源包含Ace的中英文双语版本,确保了在不同语言环境下的使用灵活性。Ace框架基于Bootstrap 3,一个强大的前端...