c++网络编程学习笔记(1)

来源:互联网 发布:淘宝客自助推广 编辑:程序博客网 时间:2024/05/21 23:03
 
前序
在多个OS平台上开发和移植网络应用程序时,将面临错综复杂的挑战。这些复杂性的表现形式各异:网络协议不兼容,在不同软、硬件平台上具有不同的API和语义的组件库,OS本身的进程间通信(IPC)机制和并发机制的局限性造成的“偶发复杂性”。
 
   直接针对OS API编程会导致以下两个问题:
1. 容易出错。因为用C写成的、OS本身的具有的API一般都缺乏安全、可移植、可重入、可扩充的系统函数接口和函数库。
2. 助长“不恰当”的设计技术的运用。因为很多用OS API写成的网络应用程序都是基于“算法”设计,而不是“面向对象”设计。
 
固有复杂性:是由所在领域存在的主要难题造成。
偶发复杂性:开发网络应用软件时使用的工具和技术存在的局限性。
 
网络应用的设计空间:
l       通信空间:网络应用进行交互的规则、形式和抽象层次。
l       并发空间:它指的是一些策略和机制,用来控制如何正确使用进程和线程,以表达多个服务实例,以及每个服务实例如何在内部使用多线程。
l       服务空间:它反映网络应用服务的主要性质,如每个服务实例的持续时间和结构。
l       配置空间:它反映如何识别网络服务,以及在何时将网络服务绑定在一起,以构成完整的应用。
 
ACE工具包概览
     ADAPTIVE通信环境(ACE)是一种广泛使用的主机基础设施中间件。ACE库包含约240000行C++代码、约500个类。
 
ACE支持的OS平台:
 ACE可运行于广泛的操作系统之上,包括:
l       PC:例如,windows(32/64位版本),WinCE,RedHat,Debian和SuSE Linux,以及Macintosh OS X。
l       大多数UNIX版本。例如,SunOS4.x和Solaris,UnixWare….
l       实时操作系统。例如,VxWorks,OS/9….
l       大型企业系统。例如,Open VMS,MVS OpenEdition…
 
原创粉丝点击