码迷,mamicode.com
首页 > Windows程序 > 详细

Socket API概述

时间:2016-09-19 09:59:08      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:

ACE Socket Wrapper Facade

1:Socket API

1.1 IPC(进程间通信)

  IPC分为本地IPC(同一计算机上的不同进程)和远程IPC(网络互联的不同计算机),本地IPC的机制有共享内存(shared memory)、管道(pipe)、信号(signal)等,远程IPC的机制有Socket、X25电路、WIN32命名管道(named pipe)。

1.2 Socket API

  应用程序可以用Socket API中的C函数创建、管理本地通信端点(endpoint),即socket套接字。一个socket可以通过一个handle访问。在windows中,socket句柄和其他I\O句柄不能互换。

  Socket API包含20多个系统函数,这些函数分为以下5类:

技术分享

技术分享

技术分享

  从服务类型(stream流、datagram数据报)、连接角色(active connection establishment主动连接端,常作为client;passive connection establishment被动连接端,常作为server)、通信领域(local or remote)几个方面,对socket api进行分组,得到socket空间分布图:

技术分享

1.3 Socket API局限

  原始Socket API有以下几个局限性:容易出错、复杂、不可移植。C++ Network Program v1的2.3.1节指出socket api的数个问题。比如,sockaddr_in变量必须手动初始化,必须用htons将“主机字节顺序转换为网络字节顺序”,服务端必须按照顺序写入bind、linsten、accept,缺乏命名规范等。

2 ACE Socket Wrapper Facade

   ACE定义了一组C++类,用来解决第一节提到的Socket API局限性,ACE Socket Wrapper Facade提供的ACE类有:

技术分享

  这些ACE类的UML关系图如下:

 技术分享

  按照1.2节分类维度,将这些ACE类组合分层成如下空间图。

技术分享

 

 

 

参考书:C++ Network Program v1,Mastering complexity with ACE and Patterns。

  

Socket API概述

标签:

原文地址:http://www.cnblogs.com/hgwang/p/5883899.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!