网络与服务器编程框架库 acl-买球官网平台

1顶
0踩

acl 3.0.12 版本发布了。

项目买球官网平台主页:
技术文章买球官网平台主页:

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 包括以下丰富的常用函数库:

  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 的通信模块增加了 udp 的通信能力,同时增加了 udp 服务器通信模板。主要改进包括:

1. 基础库lib_acl改进

  • feature:acl_single_server.c, acl_ioctl_server.c, acl_aio_server.c, acl_udp_server.c 增加了可以获得本地监听套接口流对象集合的函数
  • feature:master 服务器框架增加了专门针对 udp 的服务器模板 acl_udp_server.c/acl_udp_params.h
  • feature:acl_vstream 支持 udp 传输; acl_vstream_net.c 中增加了 acl_vstream_bind 函数用来绑定 udp 传输模式
  • feature:acl_vstream 增加了 acl_vstream_set_local_addr, acl_vstream_set_peer_addr
  • feature:acl_vstream 中添加了 struct sockaddr_in 类型的两个指针,以便于 acl_vstream 很容易支持 udp 传输
  • feature:acl_vstream 对象增加了 acl_vstream_set_local, acl_vstream_set_remote, acl_vstream_set_path 三个函数
  • performance:acl_vstream 中将 remote_addr, local_addr 定义为指针,从而大大减少了 acl_vstream 对象创建时的尺寸大小
  • compile:增加了工程文件 makefile.db,使用该工程文件编译,则可以使用 mysql 数据库功能,使用 makefile 工程文件编译,则可以 lib_acl.a 更为干净 (即不依赖于任何第三方库)
  • bugfix:events_select.c/events_select_thr.c 当套接字监听集合为空时休眠的时间单位为秒,需要将微秒级的 delay 转为秒级
  • other:events 模块 acl_event_notify_rdwr/acl_event_notify_time 函数接口类型重新定义,在回调函数中增加了 acl_event,acl_vstream 参数,从而方便用户直接使用;因为这两个接口的重新定义,导致了很多功能模块做相应修改,主要影响的模块有:event, master, aio, ioctl
  • other:将 master 模块下的源文件代码排版整理了一下
  • other:acl_vstream.c:acl_vstream_set_remote 重命名为 acl_vstream_set_peer
2. 应用协议库lib_protocol改进

  • bugfix:http_chat_async.c 中 http_res_body_get_async/http_req_body_get_async 两个函数没有对 ctx->read_cnt 置 0
  • other:lib_acl 库中 acl_event_notify_rdwr/acl_event_notify_time 函数接口定义的修改,与之相关的模块(icmp)进行了修改
  • other:因为 lib_acl 基础库中的 acl_vstream 读写回调函数接口变更,调整了与之相关的部分内部接口,主要影响到了 icmp 模块中 icmp_stream.c 中的内部接口
3. 功能丰富的c 库lib_acl_cpp改进

  • feature:aio_stream 增加了 get_peer/get_local 用来获得网络连接流的本地及远程地址
  • feature:master_udp 服务器模板增加了可在 proc_on_init() 虚函数中获得本地绑定套接字流对象集合的函数功能:get_sstreams()
  • feature:master 服务器框架增加了 master_udp 服务模板类
  • feature:connect_manager 类增加了根据键值字符串的哈希值获取连接池对象的虚函数,从而有利于在分布式环境里使用连接池
  • feature:connect_manager/connect_pool 类增加了针对每个连接池有一个其位于连接池集合中的下标索引
  • feature:http_request::request 中原来只能指定 get/post 两种请求方法,现在可以指定多种请求方法
  • feature:http_header 允许设置自定义 (即除 get/post/put/connect/purge之个) 的请求头命令字
  • feature:memcache 类支持流式读写数据,从而可以支持大 value 的存取方式
  • feature:master_threads 类在单独运行方式的使用场景接近于在 acl_master 框架下的运行场景
  • feature:master_threads/master_aio/master_proc 类支持在单独运行模式下监听多个地址
  • feature:acl_cpp_init.cpp 中添加了 win32 下关闭 dos 窗口的函数
  • feature:http/memcache 模块增加了连接池管理类
  • compile:acl_cpp_init.cpp 中 freopen 返回的文件句柄因为未被使用而使编译器报警
  • compile:增加了 makefile.db 工程文件,使用该文件编译则需要 mysql/sqlite 库; 如果不需要数据库相关的功能,则使用 makefile 工程文件进行编译
  • bugfix:memcache 类中当连接异常中断重试时会因请求数据被清掉而出错,原因是请求与响应共用同一个缓冲区所致,现将请求缓冲区与响应缓冲区分开
  • bugfix:memcache.cpp 当调用 open 函数连接 memcached 服务器失败时,用 valgrind 检查出记录错误日志时引用了一个未经初始化的变量
  • samples:增加了针对 udp 的测试用例 udp_client
  • other:lib_acl 库中 acl_event_notify_rdwr/acl_event_notify_time 函数接口定义的修改,与之相关的模块进行了修改
  • other:因为 lib_acl 基础库中的 acl_vstream 读写回调函数接口变更,调整了与之相关的部分内部接口,主要影响到了 ssl_stream/ssl_aio_stream
  • other:connpool/http_request_pool/memcache_pool:调整了构造函数,去掉了最后一个参数
1
0
评论 共 1 条 请登录后发表评论
1 楼 zsxxsz 2013-10-09 09:35
抱歉,其中的“技术文章买球官网平台主页:http://zsxxsz.ietye.com/ ”地址写错了,应该是:“技术文章买球官网平台主页:http://zsxxsz.iteye.com/ ”

发表评论

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

相关推荐

  • minigui编程学习参考资料,适合低性能屏幕的ui开发,降低设备成本,实现效果好,速度快,资料齐全

  • 非均匀有理b样条c 代码库,源资源下载页面https://launchpad.net/nurbs /trunk/3.0.12

  • 这是vlc_3.0.12的完整sdk包_可以进行vlc二次开发。 参考文章:https://blog.csdn.net/xiaolong1126626497/article/details/115174182

  • 包含minigui 运行的基本原包,和部分拓展包,移植成功即可运行minigui项目

  • python库,解压后可用。 资源全名:phcli-3.0.12-py3.8.egg

  • swigwin-3.0.12.rar,swigwin-3.0.12,autogen.sh,tools,vcfilter,pyname_patch.py,check-include-path.pike,convertpath,swig.gdb,mkdist.py,pcre-build.sh,mkrelease.py,mkwindows.sh,capitalize,setup.py.tmpl,...

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

  • 资源分类:python库 所属语言:python 资源全名:tiddlywebplugins.sqlalchemy3-3.0.12.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

  • 赠送jar包:thymeleaf-3.0.12.release.jar; 赠送原api文档:thymeleaf-3.0.12.release-javadoc.jar; 赠送源代码:thymeleaf-3.0.12.release-sources.jar; 赠送maven依赖信息文件:thymeleaf-3.0.12.release.pom;...

  • sapjco3-linuxx86_64-3.0.12.tgz,readme.txt,libsapjco3.so,examples,multithreadedexample.java,stepbystepserver.java,stepbystepclient.java,repositorychain.java,statefulserverexample.java,...

  • linux环境下测试网络的一些参数,直接解压安装即可使用(亲测实用),可参考链接:https://blog.csdn.net/bangbang_1/article/details/103568555

  • 赠送jar包:thymeleaf-3.0.12.release.jar; 赠送原api文档:thymeleaf-3.0.12.release-javadoc.jar; 赠送源代码:thymeleaf-3.0.12.release-sources.jar; 赠送maven依赖信息文件:thymeleaf-3.0.12.release.pom;...

  • percona-toolkit-3.0.12-1.el6.x86_64.rpm

  • mg-samples-3.0.12.zip,mg-samples-3.0.12,makefile.am,makefile.in,configure,graphics,makefile.am,makefile.in,graphics_res_cn.h,res,makefile.am,makefile.in,sail.bmp,sample.bmp,logo.bmp,icon.bmp,graphics....

  • sap jco 3.0.12_32bit

global site tag (gtag.js) - google analytics