ACE介绍及简单服务器实例
来源:互联网 发布:知足知不足阅读答案 编辑:程序博客网 时间:2024/06/05 11:04
转自
http://www.cnblogs.com/sevenyuan/archive/2010/06/13/1757873.html
ACE的全名是 ADAPTIVE Communication Environment,是一组可以自由使用的、开源的面向对象(OO)的、跨平台的网络通信构架。
框架供网络程序的开发:
l 事件多路分离组件:ACE Reactor(反应堆)和Proactor(前摄器)是可扩展的面向对象多路分离器,它们分派应用特有的处理器,以响应多种类型的基于I/O、定时器、信号和同步的事件。
l 服务初始化组件:ACE Acceptor(接受器)和Connector(连接器)组件分别使主动和被动的初始化任务与初始化一旦完成后通信服务所执行的应用特有的任务去耦合。
l 进程和线程管理:提供多进程和多线程的派生和管理方法,消除了平台的差异性。
l 服务配置组件:ACE Service Configurator(服务配置器)支持应用的配置,这些应用的服务可在安装时和/或运行时动态装配。
l 分层的流组件:ACE Stream组件简化了像用户级协议栈这样的由分层服务组成的通信软件应用的开发。
l 命名服务:ACE NamingService提供了单进程命名上下文、同一节点共享命名上下文和在网络上命名上下文的服务设施。
除此以外,ACE还提供了信号、线程安全与同步、内存管理等等多种丰富的功能。ACE已经成长成为一个完善的系统,在网络编程方面,能够提供非常丰富的服务。
下面是个ACE核心代码,构建了一个服务器
代码
int main(int, char *[]){ ACE_INET_Addr port_to_listen (9999); ACE_SOCK_Acceptor acceptor; acceptor.open (port_to_listen, 1); while (1) { ACE_SOCK_Stream peer; ACE_INET_Addr peer_addr; ACE_Time_Value timeout (10, 0); if( 0 == acceptor.accept (peer, &peer_addr, &timeout, 0)) { char buffer[4096]; ssize_t bytes_received; while ((bytes_received = peer.recv (buffer, sizeof(buffer))) != -1) { peer.send_n (buffer, bytes_received); } peer.close (); } } return 0;
0 0
- ACE介绍及简单服务器实例
- JNI介绍及简单实例
- ACE建立通信简单实例
- VLAN的简单介绍及配置实例
- JFreeChart简单介绍及入门实例
- oracle存储函数简单介绍及实例
- JFreeChart简单介绍及入门实例
- android ProgressBar简单介绍及实例
- MySQL触发器简单介绍及使用实例
- ACE中的Proactor介绍和应用实例
- ACE中的Proactor介绍和应用实例
- ACE中的Proactor介绍和应用实例
- ACE中的Proactor介绍和应用实例
- ACE中的Proactor介绍和应用实例
- ACE中的Proactor介绍和应用实例
- ACE中的Proactor介绍和应用实例
- ACE中的Proactor介绍和应用实例
- ACE中的Proactor介绍和应用实例
- Http与HttpClient(已被废弃)通信的介绍,附带一个Http发送GET请求工具类的例子
- Python定时任务框架APScheduler
- linux开放指定端口
- 华为:用一个圈子联接一个圈子
- Xcode 8 新特性
- ACE介绍及简单服务器实例
- 好的代码组织方式只是为了更好看吗?
- php+ajax实现跨域单点登录
- 手把手教你做智能LED灯(三) 手机控制端开发
- linux iptables 设置仅22、80端口可访问
- [电影]《指环王》新老三部曲完全赏析(王者归来)
- mybatis 下hashMap 与 写 rusultMap="xxxMap" 的对比
- cocos2d-js动画结束监听
- java jmx整合Spring配置