Boost的ASIO:底层是OS适配层上一层一些模板类,再上一层模板类的参数化(TCP/UDP)再上一层是服务,它只有一种框架io_service
libevent怎么用 :libevent怎么用在不同OS下,做了多路复用模型的抽潒可以选择不同的模型,通过事件函数提供服务
涉及范围: ACE:ACE包含了日志,IPC线程池,共享内存配置服务,递归锁定时器等。
libevent怎麼用 :libevent怎么用只提供了简单的网络API的封装 线程池, 内存池 递归锁等均需要自己实现。
开发难度: ACE:ACE难度较大必须了解其框架
发布方式: ACE:ACE不依赖第3方库,以DLL方式提供
libevent怎么用 :一遍编译为静态库使用
Boost的ASIO:支持单线程和多线程调度
libevent怎么用 :线程调度需要自己来注册不同嘚时间句柄。
Boost的ASIO:基于函数对象的hanlder事件分派任何函数都有可能成为hanlder,少了一堆虚表的维护调度优于ACE。
libevent怎么用 :基于注册的事件回调函數来实现事件分发
请求回应模型请求段发起请求,等待回应端回应请求 请求端与回应端是1:N的,可以扩展成N:M的
发布订阅模型,发布端單向发送数据不关心信息是否都发送给了订阅端。订阅端只负责接收不反馈。若交互需要额外的socket采用请求回应模型实现。
管道模型管道是单向的,从PUSH端单向的向PULL端单向的推送数据流