2. Socket API概述 - C++NP(ACE)

来源:互联网 发布:java new date 格式化 编辑:程序博客网 时间:2024/06/14 08:48

2. Socket API概述 - C++NP(ACE)

2008-12-07 13:50
2.1 操作系统IPC机制概述

网络应用程序需要使用"进程间通信(IPC)"机制. OS提供的IPC机制分为以下两种:

本地IPC: 如共享内存. 管道. "UNIX领域"socket. 门(door). 信号(signal)等.
        只允许"位于同一计算机"上的实体之间通信.
远程IPC: 如"Internet领域"socket. X.25电路. Win32命名管道.
        允许"分布在一个网络上"的实体之间通信.

2.2 Socket API

可以分为以下5类:

1) 本地环境管理
socket()  bind()  getsockname()  getpeername()  close()

2) 建立和终止连接
connect()  listen()  accept()  shutdown()

3) 数据传输
send()  recv()  sendto()  recvfrom()

4) 选项管理
setsockopt()  getsockopt()

5) 网络地址
gethostbyname()  gethostbyaddr()  getipnodebyname()  getipnodebyaddr() 
getservbyname()

一个通信领域由一个"协议簇"和一个"地址簇"确定.
协议簇: 表示一个协议集合. 例如IPv4(PF_INET). IPv6(PF_INET6). ATM(PF_ATMSVC)等.
       用协议簇IPv4(PF_INET)和服务类型SOCK_STREAM就指定了TCP/IP协议.
地址簇: 定义地址的格式. 格式包括地址的字节数.包含的字段数.字段类型.顺序等.
       例如IPv4的地址簇AF_INET.


2.3 使用 Socket API的糟糕之处

容易出错. 过于复杂. 不可移植.

原创粉丝点击