1、ACE 是一个C/S框架

网络程序开发常遇见的问题:
a)    跨平台。这一点相对比较容易,主要是针对类似多线程、socket通信等操作,定义统一的接口,使用define实现。基本上,只要定义良好,使用起来就很方便,也不需要多少改动。
b)    Socket通信。在socket通信过程中,除了我们实际收发的数据,也有很多其他的数据需要处理,如keep-alive信息、socket关闭或者各种出错信息等。这些都大大增加了代码的复杂度。
c)    多线程。多线程操作socket或者数据,要考虑同步等问题
d)    对各种系统API的操作,特别是socket的操作,要有很多错误处理的代码,大大增加了代码复杂度。
e)    还有许多其他问题。

 

ACE的事件机制重构socket通信的功能。

首先来了解一下ACE框架,下面是ACE的体系结构图:

【ACE】ACE 框架简单了解

从这个图中,可以很明显的看出,ACE框架从底层往上,依次是C风格的OS适配层,也就是对不同的操作系统底层调用的封装;

上一层是C++的封装类,就是把各种系统调用和系统对象封装成C++类对象;

再往上就是框架层,主要就是Reactor, Acceptor, Connector和Proactor。

在上面就是ACE提供的一些服务组件

      从这个结构图中还可以看出,在C++封装层,ACE框架还为我们提供了进程、线程管理,日志记录,内存管理等模块。进程和线程管理可以用来方便的创建和管理进程、线程,还提供了各种机制实现线程同步。使用ACE的日志模块,我们可以很方便的记录不同级别的日志,并在实际运行过程中控制日志记录的级别。使用ACE的内存管理,我们可以预先分配一块内存,这样可以避免程序频繁的向OS请求内存,使得程序的性能无论从时间上还是空间上都能得到很大的提升。内存管理还提供了进程间共享内存的内存分配方式。

 

使用ACE进行C/S结构程序就是使用Reactor框架,实现我们的事件处理方法。下面是一个使用ACE开发的通信系统的简单的类图:

【ACE】ACE 框架简单了解

更多:https://blog.csdn.net/suxinpingtao51/article/details/11800183

 

相关文章:

  • 2021-05-30
  • 2021-07-18
  • 2021-11-28
  • 2021-12-09
  • 2021-06-22
  • 2021-08-17
猜你喜欢
  • 2021-07-30
  • 2021-04-10
  • 2022-12-23
  • 2021-05-28
  • 2022-12-23
  • 2021-12-06
相关资源
相似解决方案