阅读更多
acl 3.0.18 版本发布了。acl 是 one Advanced C/C++ library 的简称,主要包括网络通信库以及服务器框架库等功能,支持 Linux/Windows 平台。

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

整个 acl 项目主要包含三个函数库:

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

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 解析库采用有限状态机方式解析数据,处理方式更为灵活

本次 acl 升级除了一些 bug 修复外,主要优化了 ACL 中的网络服务器框架、事件引擎以及线程池调度算法,同时增加了客户端连接分发器模块。

一、基础 C 库 lib_acl改进

  • 新特性:线程池中(acl_thread_pool.c)的子线程的等待时间间隔分成多个等待时间片
  • 新特性:服务器模板(acl_aio_server.c, acl_thread_server.c)支持向连接分发器报告状态,从而允许从连接派发器处接收客户端连接
  • 新特性:借鉴了 glib 库中的一些宏定义,针对 gcc 或 vc 编译器增加了一些编译属性开关(如过期 API 调用警告)
  • 性能优化:线程池调度算法优化(每一个线程一个独立的线程条件变量,从而可以有效地避免线程池事件通知时的惊群现象)
  • 性能优化:事件引擎支持检测全部套接字的时间间隔设置,当并发连接较大时,可以有效地提升事件检测的性能
  • 性能优化:禁用事件引擎中的自旋锁,降低 CPU 损耗
  • 问题修复:acl_vstream_net.c 中 acl_vstream_accept_ex 接收外来连接时,判断监听描述符的类型方式有误
  • 问题修复:acl_getpeername 函数当客户端连接的是域套接字时,给出的地址不对
  • 问题修复:acl_master 服务器模块在 reload 配置文件时有可能会导致产生 core 文件
  • 问题修复:events_epoll_thr.c 在函数 event_disable_readwrite 中调用 epoll_ctl 删除描述字时,也必须保证第四个参数(struct epoll_event*) 非空,否则在低版
  • 本 LINUX 下会有问题
  • 问题修复:events_iocp.c 关闭未决状态的完成端口在 WIN XP 下存在 BUG,应该在套接字关闭前先取得完成端口状态

二、lib_acl_cpp 库改进

  • 新特性:connect_manager 连接池集群管理器增加了后台检测功能,新增加的类 connect_monitor 为一个非阻塞线程,会在后台定期检测连接池集群中的所有服务器的端口是否存活
  • 新特性:借鉴了 glib 库中的一些宏定义,针对 gcc 或 vc 编译器增加了一些编译属性开关(如过期 API 调用警告)
  • 新特性:db_pool 类增加了 peek_open 方法,可以在获取数据库对象时直接打开数据库连接
  • 新特性:将 master_threads 替换为 master_threads2
  • 问题修复:md5.cpp 其中在 WIN32 下使用 sprintf_s 函数时,传入的长度参数应为 3,否则 VC 会报错
  • 问题修复:event_timer.cpp, 在 32 位机下会因 64 位整数转 32 位整数而导致 32 位整数溢出问题
  • 问题修复:master_threads/master_threads2 存在内存泄露问题

三、app/master_dispatch改进

  • 增加了客户端连接分发器模块,通过该模块,可以非常均匀地将客户端连接分发给使用 acl 服务器框架的应用子进程

技术博客:http://zsxxsz.iteye.com/
下载:http://sourceforge.net/projects/acl/
SVN:svn checkout svn://svn.code.sf.net/p/acl/code/trunk acl-code
Github:https://github.com/zhengshuxin/acl
1
0
评论 共 2 条 请登录后发表评论
2 楼 zsxxsz 2014-04-09 19:48
谢谢提醒,不过应该是iteye的编辑给搞错了,请参考一下:http://zsxxsz.iteye.com/blog/2041841,同时和这篇资讯发出的。
1 楼 zjumty 2014-04-09 15:50
技术文章主页的URL错了

发表评论

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

相关推荐

  • acl.3.0.18.gz_ACL

    提供了通用的通讯交换机制,包括3个部分 alc 底层库和上层app接口 支持 windows 和linux

  • 网络与服务器编程框架库 acl_3.0.18 发布

    要包括网络通信库以及服务器框架库等功能,支持 Linux/Windows/Solaris/FreeBsd/MacOS 平台;整个 acl 项目主要包含三个函数库:lib_acl(纯C开发的基础库,主要包含网络通   信及服务器编程框架以及其它丰富的...

  • Python库 | celery-3.0.18.tar.gz

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

  • 2023最新实践!3.0.18版本vlc搭建RTSP点播服务器

    当前使用的vlc版本:3.0.18 方法一: 1.在VLC上选择 工具->VLM配置,配置视频点播,保存导出文件。 2.在工具->偏好设置->选择全部:在串流输出中,导入上面已配置好的vlm文件即可 3、 播放rtsp点播,rtsp://[服务端...

  • sapjco3-linuxx86_64-3.0.18

    1.解压缩后,把libsapjco3.so和sapjco3.jar放入Linux服务器项目web-inf目录lib文件夹中,重启服务就可以了

  • 护眼工具eyefoo_3.0.18

    eyefoo_3.0.18,免安装护眼神器,定时电脑黑屏锁定休息

  • 【计算机网络】第六部分 应用层(27) 万维网与超文本传输协议(HTTP协议)

    文章目录27.1 体系架构27.1.1 客户(浏览器)27.1.2 服务器27.1.3 统一资源定位符27.1.4 `Cookies`1. `Cookies` 的创建和存储2. `Cookies` 的使用27.2 Web文档27.2.1 静态文档 万维网 World Wide Web, WWW 是分布在...

  • rtsp流媒体工具3.0.18

    测试流媒体通不通,卡不卡顿,方便快捷简单!并且免费的!

  • EVO邮件服务器 v3.0.19 简体中文版.zip

    专为国内用户设计的企业邮件软件“EVO邮件服务器”,最大的亮点就在于它具有 IMAP 功能、最完整的SSL解决方案、全球第一套支持 UTF8 的 IMAP 与 SMTP 的Mail Server软件。“EVO Software Production”总是为您冲第一...

  • vlc-3.0.18-win64.rar

    VLC视频播放

  • SAP.NET CONNECTOR 3.0.18 FOR X64

    SAP.NET CONNECTOR 3.0.18 FOR X64

  • SAP Java Jco3.0.18 Windows 全平台 32bit 64bit

    SAP Java Jco3.0 18 Windows 全平台 32bit 64bit SAP-ERP-OA-BI

  • vlc-3.0.18-win64

  • orientdb-graphdb-3.0.18.jar

    OrientDB 图形数据库 com.orientechnologies/orientdb-graphdb/3.0.18/orientdb-graphdb-3.0.18.jar

  • Porting Kit For Mac_v3.0.18

    Porting Kit For Mac_v3.0.18是一款游戏移植工具,让你可以直接在 OS X 上玩 Windows 平台的游戏。Porting Kit 也是利用 Wineskin,先帮你移植好游戏,完成必要文件的配置,而你只需要下载安装即可。

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

    资源全名:Firefox Setup 3.0.18.exe

  • 眼睛护士,版本3.0.18,呵护你的眼睛健康

    这款软件可作为“番茄钟”使用,工作和休息交替进行,是广大程序员不容错过的良心软件。

  • 【java毕业设计】智慧社区教育服务门户.zip

    有java环境就可以运行起来 ,zip里包含源码+论文+PPT, 系统设计与功能: 文档详细描述了系统的后台管理功能,包括系统管理模块、新闻资讯管理模块、公告管理模块、社区影院管理模块、会员上传下载管理模块以及留言管理模块。 系统管理模块:允许管理员重新设置密码,记录登录日志,确保系统安全。 新闻资讯管理模块:实现新闻资讯的添加、删除、修改,确保主页新闻部分始终显示最新的文章。 公告管理模块:类似于新闻资讯管理,但专注于主页公告的后台管理。 社区影院管理模块:管理所有视频的添加、删除、修改,包括影片名、导演、主演、片长等信息。 会员上传下载管理模块:审核与删除会员上传的文件。 留言管理模块:回复与删除所有留言,确保系统内的留言得到及时处理。 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7及以上 数据库工具:Navicat11及以上 开发软件:eclipse/idea Maven包:Maven3.3及以上

  • 基于selenium的携程机票爬虫资料齐全+详细文档+高分项目+源码.zip

    【资源说明】 基于selenium的携程机票爬虫资料齐全+详细文档+高分项目+源码.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

  • 【java毕业设计】智慧社区宠物管理系统(源代码+论文+PPT模板).zip

    zip里包含源码+论文+PPT,有java环境就可以运行起来 ,功能说明: 文档开篇阐述了随着计算机技术、通信技术和网络技术的快速发展,智慧社区门户网站的建设成为了可能,并被视为21世纪信息产业的主要发展方向之一 强调了网络信息管理技术、数字化处理技术和数字式信息资源建设在国际竞争中的重要性。 指出了智慧社区门户网站系统的编程语言为Java,数据库为MYSQL,并实现了新闻资讯、社区共享、在线影院等功能。 系统设计与功能: 文档详细描述了系统的后台管理功能,包括系统管理模块、新闻资讯管理模块、公告管理模块、社区影院管理模块、会员上传下载管理模块以及留言管理模块。 系统管理模块:允许管理员重新设置密码,记录登录日志,确保系统安全。 新闻资讯管理模块:实现新闻资讯的添加、删除、修改,确保主页新闻部分始终显示最新的文章。 公告管理模块:类似于新闻资讯管理,但专注于主页公告的后台管理。 社区影院管理模块:管理所有视频的添加、删除、修改,包括影片名、导演、主演、片长等信息。 会员上传下载管理模块:审核与删除会员上传的文件。 留言管理模块:回复与删除所有留言,确保系统内的留言得到及时处理。

Global site tag (gtag.js) - Google Analytics