acl 3.0.15 版本 (项目主页:https://sourceforge.net/projects/acl/,技术文章主页:http://zsxxsz.iteye.com/)) 发布了,acl 是 one Advanced C/C++ library 的简称,主要包括网络通信库以及服务器框架库等功能,支持 Linux/Windows/Solaris/FreeBsd/MacOS 平台;整个 acl 项目主要包含三个函数库:lib_acl(纯C开发的基础库,主要包含网络通信及服务器编程框架以及其它丰富的功能)、lib_protocol(包含 HTTP/PING/SMTP 通信协议的C语言实现)、lib_acl_cpp(基于 lib_acl 及 lib_protocol 两个C库,提供了更为强大的编程接口及丰富的功能类);本次 acl 升级除了一些 bug 修复外,主要优化了 ACL 中的网络服务器框架及网络通信库的性能,此外,修复了一些在 solaris(x86) 上的一些不兼容性问题。
acl 包括以下丰富的常用函数库:
1、常见网络应用库: SMTP 客户端库/PING 库/memcache 客户端库/handlersocket 客户端库/beanstalk 客户端库
2、HTTP 网络库:HTTP 客户端/服务端库,C++版 HttpServlet 类,HTTP COOKIE/HTTP SESSION 等
3、邮件解析库:mime解析库/RFC2047/RFC2048/mime base64/mime qp/mime uucode 等
4、网络通信库:阻塞/非阻塞网络 IO 库(其中 lib_acl_cpp 库通过嵌入 polarssl 而具备了 SSL 的能力)
5、服务器框架:包括进程池模式、线程池模式、非阻塞模式、UDP通信模式及触发器模式
6、事件引擎:支持 select、poll(for unix)、epoll(for linux)、kqueue(for bsd)、devpoll(for solaris)、iocp(for win32)、win32 窗口消息(for win32)事件引擎
7、通用连接池库:高效的连接池基础类库,支持丰富的功能
8、数据库客户端库:对原生的数据库客户端库进行了二次封装,使编程更为简易,功能更为丰富
9、xml/json 流式解析库:区别于网上其它已有的 xml/json 解析库,acl 中的 xml/json 解析库采用有限状态机方式解析数据,处理方式更为灵活
一、基础 C 库:lib_acl
.新特性: 完善了 json 流式解析器,提供了更多的功能(如:可以提取某个结点标签后的 json 字符串)
.新特性: acl_threads_server.c, 新添加的线程池服务器框架模板
.新特性: acl_threads_server.c 服务器模板增加了配置控制参数 ioctl_batadd, 用来控制是否采用任务添加批处理方式
.新特性: event.c, acl_events.c, 新增加了任务派发前及派发后的回调过程
.新特性: acl_pthread_pool.c, 新增加了 acl_pthread_pool_alloc_job, acl_pthread_pool_free_job, acl_pthread_pool_add_job(新的批量添加线程任务的接口)
.性能优化: acl_pthread_pool.c, 由原来线程池统一用一个线程条件变量改为每个线程一个单独的线程条件变量,从而大大减少线程之间的锁冲突,因而提高了线程池的运行性能
.性能优化: acl_pthread_pool.c, 线程池任务调度优化,将任务分配至每个线程本身的任务队列,从而将线程之间的竞争条件降至最低,大大提高了线程池任务调度的性能
.性能优化: acl_pthread_pool.c 线程池任务调度优化,当以批处理方式添加任务时,优先将任务分给空闲线程,减少线程竞争的概率
.问题修复: acl_json_parse.c,json_val() 函数中没有针对转义内容做特殊处理
问题修复: 修复了一些 json 解析器中的 bug
问题修复: 线程池服务器模板 (acl_threads_server.c) 应该在 acl_chroot_uid 调用之后再调用 set_core_limit,这样才能使应用程序崩溃时产生 core 文件
.编译: 去掉了 ACL_MS_WINDOWS 宏定义,在WINDOWS环境下统一使用 WIN32 来标识 VC 编译环境
.编译: 支持 vc2008 编译器
二、网络应用协议库:lib_protocol
.编译: 在高版本VC(>VC2008) 环境下,使用更为安全的函数
三、功能丰富的C++库:lib_acl_cpp
.新特性: master_threads2,新增加了服务器线程池模板
.新特性: socket_stream 类支持 ssl 传输(与 polarssl 结合); 去掉了 ssl_stream 类
.新特性: json 类支持将字符串对象添加至数组对象中
.新特性: http_request 类添加了方法 set_timeout 可以设置网络超时及读写超时
.新特性: 在使用高版本 vc(_MSC_VER >= 1500,即 VC9 以上版本) 编译器时,不再使用 _CRT_SECURE_NO_WARNINGS 宏来避免编译器警告,而是使用 VC 建议的安全函数
.问题修复: json.cpp 中 json_node::set_text 误把文本值赋予标签变量
.问题修复: queue_file.cpp,queue_file::create 函数内在尝试创建文件时可能会因为文件系统出问题而进入循环过程,通过增加标志位避免该问题
.问题修复: 新线程池服务器模板 master_threads2 类在调用 service_pre_jail 时应该通过 acl_threads_server_event 获得事件引擎 (原来写的是 acl_ioctl_server_event, 这个是旧的服务器模板获取事件引擎的方法)
.问题修复: HttpServletRequest.cpp, HttpServletRequest::readHeader 在解析 POST中的数据体时,需要判断请求头中 Content-Length 为 0 的情况
.示例: samples/json2, 用于测试级联提取数据的例子
.示例: 将所有的 json 测试用例移至 samples/json 目录下
.注释: 修正 connect_manager::init 原来错误的参数格式描述
.安全: ipc 通信机制中增加了随机数安全验证功能,以防止外来干扰
参考链接:
技术博客:http://zsxxsz.iteye.com/
download:http://sourceforge.net/projects/acl/
svn:svn checkout svn://svn.code.sf.net/p/acl/code/trunk acl-code
github:https://github.com/acl-dev/acl
相关推荐
mongodb-linux-x86_64-3.0.15.tgz
此“mongodb-linux-x86_64-amazon-3.0.15.tgz”文件是专为Linux 64位操作系统设计的MongoDB 3.0.15版本安装包,特别适配于Amazon EC2环境。 首先,让我们详细了解一下MongoDB 3.0.15版本。这个版本包含了MongoDB在...
这个"apache-cxf-3.0.15.zip"文件包含了CXF框架的3.0.15版本,这是一个稳定且广泛使用的版本,提供了丰富的功能和服务端支持。下面我们将深入探讨CXF的核心特性、用途以及如何使用它。 Apache CXF,全称Cocoon XML ...
MotionPro-3.0.15版本Android手机端安装包
5. **SSL支持**:"mongodb-osx-ssl-x86_64-3.0.15" 版本包含SSL支持,这意味着在MongoDB实例之间或者客户端与服务器之间进行通信时,可以启用加密连接,增强数据安全性。 安装过程如下: 1. **下载**:从MongoDB...
python库。 资源全名:NURBS_Python-3.0.15-py2.py3-none-any.whl
标题"SAPJCO3-NTAMD64-3.0.15"指的是SAP Java Connector的3.0.15版本,适用于64位Windows操作系统。SAP JCO(SAP Java Connector)是一个用于Java应用程序与SAP系统之间进行通信的接口库,它实现了远程功能调用(RFC...
《网络摄像头mobiola web camera v3.0.15 s60v3汉化版详解》 在当今数字化时代,网络摄像头已经成为我们日常生活和工作中不可或缺的一部分,它为我们提供了远程交流、在线会议、监控等多种便利。本文将详细介绍...
MQTTnet 是一个开源的 MQTT 客户端和服务器框架,专为 .NET 开发者设计。MQTT(Message Queuing Telemetry Transport)是一种轻量级的发布/订阅式消息协议,广泛应用于物联网(IoT)、移动应用、小型设备通信等领域...
SAP JConnect是SAP提供的一个Java库,它实现了JDBC(Java Database Connectivity)和RMI(Remote Method Invocation)接口,使得非ABAP编程语言,如Java,能够无缝地访问SAP R/3或NetWeaver AS ABAP系统的功能。...
本压缩包"mongodb-linux-x86_64-rhel70-3.0.15.tgz"提供了针对RHEL 7.0的MongoDB 3.0.15版本,这是一个稳定且功能丰富的版本。 在Linux环境中安装MongoDB 3.0.15,首先需要解压下载的tgz文件,使用以下命令: ```...
2、隐藏openssh-版本号(openssh9.8p1及之后隐藏版本号还未找到方法) 3、保留scp与ssh-copy-id命令 4、已默认安全加固(已有配置跳过) 安装: 执行 bash upgrade_ssl_ssh.sh 进行安装 注意,升级安装后,确保sshd...
2、隐藏openssh-版本号(openssh9.8p1及之后隐藏版本号还未找到方法) 3、已默认安全加固(已有配置跳过) 安装: 执行 bash upgrade_ssl_ssh_ubuntu.sh 进行安装 注意,升级安装后,确保sshd服务正常,请新开终端...
AeroSandbox-3.0.15-py3-none-any.whl即是AeroSandbox库的3.0.15版本,适用于Python 3解释器,且不限于特定操作系统或架构。 AeroSandbox的核心在于提供了一套用于气动分析和飞行器设计的高级接口。它包含了一系列...
**Python库huaweicloudsdkdms-3.0.15b0-py3-none-any.whl详解** 本文将详细介绍Python库`huaweicloudsdkdms-3.0.15b0-py3-none-any.whl`的相关知识,它是一个用于Python开发的华为云DMS(Database Management ...
2、隐藏openssh-版本号(openssh9.8p1及之后隐藏版本号还未找到方法) 3、已默认安全加固(已有配置跳过) 安装: 执行 bash upgrade_ssl_ssh_ubuntu.sh 进行安装 注意,升级安装后,确保sshd服务正常,请新开终端...
标题中的“Firefox火狐浏览器官方3.0.15-mac版本dmg安装包”指的是Mozilla Firefox的特定历史版本——3.0.15,专为苹果Mac操作系统设计的安装程序。Firefox是一款开源、免费的网络浏览器,由Mozilla基金会开发,它以...
本篇文章将详细解析Firefox 3.0.15-win32版本的特点、功能及安装步骤,旨在帮助用户了解并成功安装这一经典版本。 一、Firefox 3.0.15的历史背景 Firefox 3.0.15发布于2009年,是Firefox 3.0系列的一个稳定更新...
资源分类:Python库 所属语言:Python 资源全名:huaweicloudsdkprojectman-3.0.15b0-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059