跨平臺網絡通信與服務器框架 acl 服務器框架 3.0.21 版本發佈

acl 3.0.21 版本 (項目主頁:https://sourceforge.net/projects/acl/,https://github.com/zhengshuxin/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 升級的主要內容有:使頭文件的定義更爲規範化、增加了新的防 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/acl-dev/acl
QQ 羣:242722074

發佈了125 篇原創文章 · 獲贊 8 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章