acl 跨平台网络通信与服务器框架 3.0.21 发布

郑树新
 郑树新
发布于 2014年10月31日
收藏 43

疫情之下,程序员如何转型?共享数字化转型加速度,就在微软在线技术峰会>>>

acl 3.0.21 版本发布了,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 升级的主要内容有:使头文件的定义更为规范化、增加了新的防 SQL 注入查询器、进一步丰富了服务器框架的功能。
 
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
.新特性:acl_threads_server.c 线程池服务器模板支持通过配置项 (ioctl_thread_accept = 1) 将 on_accept 回调过程放在线程池的子线程中处理
.新特性:事件引擎模块可以区分 ACL_EVENT_ACCEPT/ACL_EVENT_CONNECT 与 ACL_EVENT_READ/ACL_EVENT_WRITE 事件类型
.新特性:acl_vstream.c 增加了几处 IO 出错时的错误号记录位置
.新特性:acl_tcp_ctl.c 增加了套接字选项的获取新接口:acl_get_tcp_solinger,acl_get_tcp_nodelay
.问题修复:acl_aqueue.c 的 acl_aqueue_free 中在释放时存在一处空指针使用
.其它:整理库的所有头文件,使之更规范

二、lib_protocol 库
.无变更
 
三、lib_acl_cpp 库
.新特性:增加了 query 数据库查询对象类,通过该类构建安全的 SQL 查询语句,并通过 db_handle 类对象查询该 query 对象,此设计借鉴了 java hiberate 的一些思想
.新特性:socket_stream 类增加了 TCP 套接字的设置/获取方法;server_socket 增加了设置服务器套接字延迟接收选项方法
.新特性:string 类的 format_append 函数增加了变参类型校验功能
.新特性:polarssl_conf 类支持 SSL 握手时对证书进行验证的方式,可以在类初始化时设置证书验证方式
.新特性:stream_hook 类的 on_close 回调函数增加网络连接是否正常的参数,子类可根据此参数决定待关闭连接的善后动作; stream 类在关闭前会首先判断网络连接是否正常,并交连接状态通过 on_close 参数传递给子类实例
.问题修复:samples/win_dbservice 在异步调用 DB 服务前还没有打开异步消息处理句柄
.问题修复:string 类中的 operator +=(long n) 的变参类型有误
.新示例:新增数据库查询示例 samples/db/mysql_query
.编译:消除了使用 Makefile.db 编译时的一些警告

参考链接:
技术博客: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/zhengshuxin/acl
QQ 群:242722074

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:acl 跨平台网络通信与服务器框架 3.0.21 发布
加载中

最新评论(6

郑树新
郑树新

引用来自“红薯”的评论

http://git.oschina.net/zsxxsz/acl 没更新哦

引用来自“郑树新”的评论

已经成功更新了 :)
访问速度比 github 快多了,感觉就象本地一样
郑树新
郑树新

引用来自“红薯”的评论

http://git.oschina.net/zsxxsz/acl 没更新哦
已经成功更新了 :)
郑树新
郑树新

引用来自“红薯”的评论

http://git.oschina.net/zsxxsz/acl 没更新哦

引用来自“郑树新”的评论

这周会我尽快更新,对了,咱们有自动同步或手工同步 github 的功能吗?

引用来自“红薯”的评论

你 git 客户端直接切换个源 push 就很方便哦,我们不能做同步功能,要不访问量大可能被封:)
好的,我试试,多谢提供支持
红薯
红薯

引用来自“红薯”的评论

http://git.oschina.net/zsxxsz/acl 没更新哦

引用来自“郑树新”的评论

这周会我尽快更新,对了,咱们有自动同步或手工同步 github 的功能吗?
你 git 客户端直接切换个源 push 就很方便哦,我们不能做同步功能,要不访问量大可能被封:)
郑树新
郑树新

引用来自“红薯”的评论

http://git.oschina.net/zsxxsz/acl 没更新哦
这周会我尽快更新,对了,咱们有自动同步或手工同步 github 的功能吗?
返回顶部
顶部