阅读更多
acl 3.0.11版本发布了,acl 是Advanced C/C++ library 的简称,主要包括网络通信库以及服务器框架库等功能;在 acl 首次参加的“2013年度中国优秀开源项目评比”中,也获得了366票的支持,排名 26。

项目地址:https://sourceforge.net/projects/acl/

acl 包括以下丰富的常用函数库:

  • 常见网络应用库: SMTP 客户端库/PING 库/memcache 客户端库/handlersocket 客户端库/beanstalk 客户端库
  • HTTP 网络库:HTTP 客户端/服务端库,C++版 HttpServlet 类,HTTP COOKIE/HTTP SESSION 等
  • 邮件解析库:mime解析库/RFC2047/RFC2048/mime base64/mime qp/mime uucode 等
  • 网络通信库:阻塞/非阻塞网络 IO 库
  • 服务器框架:包括进程池模式、线程池模式、非阻塞模式及触发器模式
  • 事件引擎:支持 select、poll(for unix)、epoll(for linux)、kqueue(for bsd)、devpoll(for solaris)、iocp(for win32)、win32 窗口消息(for win32)事件引擎
  • 通用连接池库:高效的连接池基础类库,支持丰富的功能
  • 数据库客户端库:对原生的数据库客户端库进行了二次封装,使编程更为简易,功能更为丰富
  • xml/json 流式解析库:区别于网上其它已有的 xml/json 解析库,acl 中的 xml/json 解析库采用有限状态机方式解析数据,处理方式更为灵活
此次新版发布除了修复了已知的 BUG 外,主要提供了通用的连接池基础库,内容如下:

1.  lib_acl

  • feature:master 框架允许以非 root 身份启动,需要用户修改 acl_master 的配置文件 main.cf,添加 set_ugid = 0,默认情况下该值为 1
  • bugfix:acl_json_util.c::json_escape_append, acl_json_parse::json_tag中需要对特殊控制字符做转义处理(目前在解析时暂不支持 \u 的情况)
  • bugfix:acl_json_util.c::json_escape_append 中不应将 "{}[]" 这些字符作为特殊字符而转义
  • event:events_select/events_poll/events_kernel/events_iocp 使事件引擎的时钟更为精确
  • bugfix:在 iocp 方式下不能通过 getpeername/getsockname 获得远程/本地的地址,通过在 acl_vstream_accept_ex 中添加 setsockopt 调用,将监听套接字中的一些属性拷贝至客户端连接中解决了此类问题

2.  lib_protocol

  • warning:http_hdr_req.c::http_hdr_req_new() 内部使用了线程局部变量,当用 valgrind 检查时会报内存泄露警告,通过在主线程中将其释放去掉了此警告
  • bugfix:http_hdr_req.c->http_hdr_req_create() 分离 URL 时有误
3.  lib_acl_cpp

  • bugfix:memcache 类中当连接异常中断重试时会因请求数据被清掉而出错,原因是请求与响应共用同一个缓冲区所致,现将请求缓冲区与响应缓冲区分开
  • samples:增加了测试 http_request_pool 的例子 samples/http_request_pool
  • samples:增加了测试 memcache_pool 的例子 samples/memcache_pool
  • feature:增加了 HTTP 客户端连接池类 http_request_pool;同时将http_request类变为 connect_client 的子类
  • feature:memcache 增加了连接池类 memcache_pool;同时将类 mem_cache 改为memcache
  • mem_cache:调整了构造函数接口,使之更容易使用
  • feature:添加了通用的客户端连接池管理对象:connect_client、connect_pool、connect_manager,这些类均为纯虚类,但子类只需要实现很少的几个虚函数便可获得功能丰富的连接池管理功能
  • feature:db_pool 支持动态将空闲时间过期的数据库连接释放掉,从而减少对后端数据库的压力
  • bugfix:db/db_mysql.c 在打开 mysql 时原来的实现中,如果需要设置字符集,则会导致崩溃,原因是设置字符集必须是在连接打开之后设置,原来的做法是在连接打开前设置的
  • bugfix:string::split/split2 内部在调用 acl_argv_split 后没有调用acl_argv_free 释放动态分配的内存
1
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • Python库 | anduin-3.0.11b0.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:anduin-3.0.11b0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

  • acl 3.0.11 版本发布,高级 C++ 网络通信 库

    acl (https://sourceforge.net/projects/acl/) 发布了,acl 是 one Advanced C/C++ library 的简称,主要包括网络通信库以及服务器框架库等功能;acl 包括以下丰富的常用函数库: 1、常见网络应用库: SMTP 客户端...

  • 开源项目推荐:我个人中意的Python/C++/.Net数学库(★精品收藏★)

    大名鼎鼎的Numpy和SciPy https://numpy.org/python版本 ... https://github.com/dpilger26/NumCppC++版本 ...https://dpilger26.github.io/NumCpp/doxygen/html/index.htmlC++文档 https://scip...

  • Python库 | Products.CMFQuickInstallerTool-3.0.11.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:Products.CMFQuickInstallerTool-3.0.11.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

  • Python库 | pyfits-3.0.11.win32-py2.7.exe

    资源分类:Python库 所属语言:Python 资源全名:pyfits-3.0.11.win32-py2.7.exe 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

  • Python库 | base3-3.0.11-py3-none-any.whl

    python库,解压后可用。 资源全名:base3-3.0.11-py3-none-any.whl

  • Python库 | alibabacloud_cs20151215-3.0.11-py3-none-any.whl

    资源分类:Python库 所属语言:Python 资源全名:alibabacloud_cs20151215-3.0.11-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

  • Nurbs3.0.11开源库vs2010源代码

    Nurbs3.0.11开源库vs2010源代码,还有我添加的SDI的测试例子TestWin,之际就能用,爽到爆

  • 编译OpenSSL时报错,Can‘t locate IPC/Cmd.pm in @INC

    Can't locate IPC/Cmd.pm in @INC

  • Firefox官方3.0.11-win32版本exe安装包

    资源全名:Firefox Setup 3.0.11.exe

  • Firefox火狐浏览器官方3.0.11-mac版本dmg安装包

    解压后可用,资源全名:Firefox 3.0.11.dmg

  • Firefox火狐浏览器官方3.0.11-win32版本exe安装包

    解压后可用,资源全名:Firefox Setup 3.0.11.exe

  • android发布三方库到远程maven仓库详细教程

    当你升级AndroidStudio版本再次创建项目后发现build.gradle的文件仓库声明中jcenter()出现了一条横线并且后面出现了一行注释 这意味着jcenter已经被废弃,当你升级到Android Studio Arctic Fox | 2020.3.1 Patch 2 ...

  • iperf-3.0.11-win64.rar

    iperf-3.0.11-win64.rar

  • iperf-3.0.11-(性能测试工具).rar

    iperf3 兼容windows和linux系统,可测试WIFI、移动网络、以太网上行、下行吞吐量和丢包率,是一个很强大的网络性能测试工具。里面有工具的操作说明

  • Django-3.0.11.tar.gz

    Django-3.0.11.tarDjango-3.0.11.tarDjango-3.0.11.tarDjango-3.0.11.tarDjango-3.0.11.tarDjango-3.0.11.tarDjango-3.0.11.tarDjango-3.0.11.tarDjango-3.0.11.tarDjango-3.0.11.tarDjango-3.0.11.tarDjango-3.0.11...

  • Linux为什么没有图形库,linux从头开始一步一步安装graphics库(linux缺少graphics.h解决方案)...

    graphics是TC里面的图形库,如果要用的话应该用TC来编译,VC++有他自己的另外图形库。分为:像素函数、直线和线型函数、多边形函数、填充函数等。如果在linux下编译程序发现系统没有这个库的话,可以到这里下载:...

  • 必须拷贝php目录中的mysql相关函数库到哪个目录下:_必须拷贝PHP目录中的MySQL相关函数库到哪个目录下...

    满意答案1.5LVVTCVT2012.12.28采纳率:48%等级:12...把解压的 php-5.2.1-Win32 重命名为 php5.并复制到C盘目录下.即安装路径为 c:\php1 找到php目录下的 php.ini.recommended (或者php.ini-dist)文件,重命名为 php....

  • 基于Matlab/Simulink的风电调频与风储联合频域模型仿真及应用

    内容概要:本文介绍了利用Matlab/Simulink进行风电调频与风储联合仿真的方法。针对传统时域仿真耗时的问题,提出了一种基于频域模型的方法,实现了快速高效的仿真。文中详细描述了虚拟惯性控制和储能下垂控制的具体实现方式及其对系统频率稳定性的影响。通过频域模型,将复杂的微分方程转化为简单的矩阵运算,显著提高了仿真速度。同时,加入了SOC(荷电状态)管理和滑动平均滤波,确保了储能系统的安全可靠运行。实验结果显示,在相同的硬件条件下,频域模型的仿真速度比传统时域模型快了近十倍,且频率偏差明显减小。 适合人群:从事电力系统仿真、风电调频研究的专业人士和技术爱好者。 使用场景及目标:适用于需要快速验证风电调频控制策略的研究人员和工程师。主要目标是在保证仿真精度的同时大幅提高仿真速度,为风电并网提供技术支持。 其他说明:本文提供的模型专注于调频性能分析,不涉及风机内部动态细节。对于更详细的风机模型,作者提供了进一步的参考资料。

  • 含碳交易与绿证的智能楼宇微网优化调度模型及其MATLAB实现

    内容概要:本文介绍了一种针对电热综合能源系统的优化调度模型,该模型在传统微网(风、光、储、火)的基础上加入了电动汽车(EVs)和智能楼宇单元,并引入了碳排放和绿色证书交易机制。模型通过MATLAB和YALMIP工具进行求解,主要关注于优化能源分配方案,降低整体成本并控制碳排放。文中详细讨论了模型的目标函数设计、约束条件设定、电动汽车充放电策略、智能楼宇温控负荷预测、绿证交易价格机制等方面的内容。实验结果显示,在考虑碳交易和绿证交易的情况下,系统的灵活性和经济性均有所提高。 适合人群:从事电力系统优化、智能楼宇设计、电动汽车调度等领域研究的专业人士和技术爱好者。 使用场景及目标:适用于希望深入了解电热综合能源系统优化调度方法的研究人员,尤其是那些对碳市场和绿证交易感兴趣的从业者。目标是提供一种能够有效整合多种能源形式并兼顾环境效益的解决方案。 其他说明:文中提供的代码片段展示了具体的实现细节,对于想要进一步探索相关领域的读者具有很高的参考价值。此外,作者还分享了一些调参经验和遇到的问题解决办法,有助于初学者更好地理解和应用这一复杂的优化模型。

Global site tag (gtag.js) - Google Analytics