阅读更多
acl 3.0.13 版本发布了!

项目主页:https://sourceforge.net/projects/acl/
技术文章主页:http://zsxxsz.ietye.com/

acl 是 one Advanced C/C++ library 的简称,主要包括网络通信库以及服务器框架库等功能,支持 Linux/Windows 平台;整个 acl 项目主要包含三个函数库:

  • lib_acl:纯C开发的最基础库,主要包含网络通信及服务器编程框架以及其它丰富的功能)
  • lib_protocol:包含 HTTP/PING/SMTP 通信协议的C语言实现
  • lib_acl_cpp:基于 lib_acl 及 lib_protocol 两个C库,提供了更为强大的编程接口及丰富的功能类
acl 包括以下丰富的常用函数库:

  • 常见网络应用库: SMTP 客户端库/PING 库/memcache 客户端库/handlersocket 客户端库/beanstalk 客户端库
  • HTTP 网络库:HTTP 客户端/服务端库,C++版 HttpServlet 类,HTTP COOKIE/HTTP SESSION 等
  • 邮件解析库:mime解析库/RFC2047/RFC2048/mime base64/mime qp/mime uucode 等
  • 网络通信库:阻塞/非阻塞网络 IO 库(其中 lib_acl_cpp 库通过嵌入 polarssl 而具备了 SSL 的能力)
  • 服务器框架:包括进程池模式、线程池模式、非阻塞模式、UDP通信模式及触发器模式
  • 事件引擎:支持 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 解析库采用有限状态机方式解析数据,处理方式更为灵活
新版本中基础库lib_acl的改进如下:

  • acl_debug.c:调整了参数的表示方法,调整后的调试标签及级别字符串的格式: 1:1, 2:10, 3:8...  or 1:1; 2:10; 3:8...
  • 特性:acl_master 服务器模板添加了 master_debug 配置项,方便用户在使用 acl 的服务器框架时调试日志
  • 特性:acl_aio_app_main.c/acl_ioctl_app_main.c, 增加了配置项 master_deny_banner 允许用户自定义拒绝连接的内容信息
  • 特性:acl_pthread_pool.c 增加了 acl_pthread_pool_qlen 函数,提供当前线程池队列中未被处理的任务数量
  • 性能:acl_vstream.c,将 __vstream_sys_read 的读过程进行了优化,改名为 __sys_read,以允许将用户输入的缓冲区做为系统 read 的内存地址,从而在调用acl_vstream_readn/acl_vstream_read 时避免了数据的二次拷贝
  • compile:acl_aio_app_main.c, 其中在调用 write 时,需要判断返回值,否则会在高版本 gcc 上报警告
  • bug修复:acl_mylog.c, 当通过 UDP 方式记录日志时,因为之前 acl_vstream.c 允许注册外部接口的改变而发生了不兼容性问题
  • bug修复:acl_xml_util.c, acl_xml_tag_add() 在调用 acl_token_tree_add 时,第三个参数应该调用 ACL_TOKEN_F_STOP,原来是 ACL_TOKEN_F_PASS
新版本中C++库lib_acl_cpp的改进如下:

  • 特性:增加了线程类(stdlib/thread)及线程池类(stdlib/thread_pool)
  • 特性:thread 类分离出一个基类 thread_job,从而使逻辑更为清晰
  • 特性:当使用 GCC 进行编译时,针对所有具有变参的函数接口定义添加了属性限定---__attribute__((format(printf, n, m))),这样便于在编译期就能发现因参数使用不当而导致的错误
  • 特性:HttpServletResponse 类支持 Transfer-Encoding: chunked 传输方式
  • 特性:connect_manager/connect_pool 允许动态添加、删除连接池对象
  • bug修复:master_udp.cpp,当以 alone 方式运行时,没有将 socket_stream 赋给 ACL_VSTREAM::context,导致在 service_main 时又重新打开一次
  • bug修复:thread.cpp,当线程为分离方式创建时 thread::thread_run 在调用完虚函数 run 后不得再引用线程对象的 return_arg_,否则会造成内存非法访问
  • bug修复:db/db_mysql.cpp, 在打开 mysql 连接时设置字符集,判断是否设置成功的方法有误
  • bug修复:master_udp.cpp, master_udp::service_main() 中的 socket_stream 是临时堆栈变量,如果被用户外部引用则可能造成内存非法访问
  • 用例:增加了 master_udp_threads,该例子将线程池与 master_udp 模板结合
  • 用例:增加了测试用例 thread_client,一个多线程网络客户端程序
  • 用例:增加了测试用例 thread 用以测试线程类
  • 用例:增加了测试用例 thread_pool 用以测试线程池类
  • 用例:添加了 master_aio_proxy 用作纯 TCP 非阻塞代理
1
0
评论 共 1 条 请登录后发表评论
1 楼 khan 2013-11-06 12:05

发表评论

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

相关推荐

  • 【最新版】Fantastical_3.0.13.zip【亲测可用】最好的日历应用程序

    与受邀者安排活动时,Fantastical可让您查看受邀者的空闲时间并帮助您找到适合每个人的时间。更好的是,您可以多次向您的受邀者发送活动建议,Fantastical会自动将其回复转变为活动。不再有来回短信,电子邮件或电话...

  • Python库 | biomaj_process-3.0.13-py2.py3-none-any.whl

    资源分类:Python库 所属语言:Python 使用前提:需要解压 资源全名:biomaj_process-3.0.13-py2.py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

  • SharpNuke_3.0.13_C#版

    SharpNuke_3.0.13_C#版

  • percona-toolkit-3.0.13_x86_64.tar.gz

    pt系列工具,用于分析数据库日志,如慢sql等。包含pt-mysql-summary,pt-query-digest等一系列插件工具

  • NVR_(71-SL)BL_EN_STD_V3.0.13build150420.zip_Hikvision_firmware_n

    NVR_(71-SL)BL_EN_STD_V3.0.13build150420

  • unSPIDE_v3.0.13.

    unSP IDE is an integrated development environment (IDE) of 16-bit CPU series, provides developers excellent user experiences. The well-designed assembler syntax and C language help users simplify ...

  • 【最新版】elementor_v3.0.13可视化编辑插件

    WordPress主题实用自适应编辑页面/文章插件Elementor,是最流行的可视化编辑器。Elementor是一款非常现代的页面编辑器,作为最流行的免费页面编辑插件,它改变了WordPress建站的方式,让我们可以无需代码便能自己...

  • libffi-3.0.13-18.el7.x86_64.rpm

    离线安装包,亲测可用

  • Python库 | girder-gravatar-3.0.13.dev4.tar.gz

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

  • jbpm-jpdl-designer-3.0.13.zip_jbpm_jbpm design_jbpm designer_jbp

    jbpm-jpdl-designer-3.0.13 关于jbpm的jpdl 设计器

  • libffi-3.0.13-19.el7.x86_64.rpm

    官方离线安装包,亲测可用

  • DS-7808N-SH升级包V3.0.13_build_150420

    海康威视 NVR DS-7808N-SH 升级包 V3.0.13_build_150420 支持萤石云 升级后需要恢复出厂设置

  • Python库 | girder-user-quota-3.0.13.dev2.tar.gz

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

  • libffi-devel-3.0.13-19.el7.x86_64.rpm

    官方离线安装包,亲测可用

  • freeradius-3.0.13-15.el7.x86_64(1) (1).rpm

    离线安装包,测试可用

  • 【计算机求职笔试】资源

    【计算机求职笔试】资源

  • (源码)基于Apache Spark Mllib的Bronze机器学习平台.zip

    # 基于Apache Spark Mllib的Bronze机器学习平台 ## 项目简介 Bronze是一个构建在Apache Spark Mllib之上的机器学习平台,旨在提供全面的数据接入、转换、训练、测试和输出功能。该平台支持多种机器学习算法模型,并提供丰富的插件来处理数据预处理、特征工程、模型训练和验证等任务。 ## 项目的主要特性和功能 ### 数据处理流程 1. 数据采集从各种数据源(如Fake、File、HDFS)接入数据。 2. 数据预处理对数据进行清洗、转换和格式化。 3. 特征工程生成和选择特征,包括特征提取、转换和选择。 4. 模型训练使用多种分类和回归模型进行训练。 5. 模型验证对训练好的模型进行验证和评估。 6. 模型持久化将训练好的模型保存到持久化存储中。 7. 模型结果输出输出模型的最终结果。 ### 支持的算法模型 #### 分类模型 逻辑回归支持大规模特征和无限训练样例,输出类别数小于1000万。

  • 电影评论网站系统设计与实现.zip

    Java项目基于Springboot框架的课程设计,包含LW+ppt

  • 《基于yolov8的纺织品瑕疵检测项目》(包含源码、完整数据集、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是均来自个人的课程设计、毕业设计或者具体项目,代码都测试ok,都是运行成功后才上传资源,答辩评审绝对信服的,拿来就能用。放心下载使用!源码、数据集、部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.dataset.txt文件,仅供学习参考, 切勿用于商业用途。 4、如有侵权请私信博主,感谢支持

Global site tag (gtag.js) - Google Analytics