1 / 6
文档名称:

网络IPC.doc

格式:doc   大小:50KB   页数:6页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

网络IPC.doc

上传人:drp539604 2017/6/2 文件大小:50 KB

下载得到文件列表

网络IPC.doc

文档介绍

文档介绍:APUE 16chp 网络 IPC :套接字 1 、创建套接字#include <sys/> I nt socket( int domain, int type, int protocol); 注意: AF_LOCAL 域是 AF_UNIX 的别名, AF_UNSPEC 域可以代表任何域。 2 、套接字通信是双向的,禁止套接字上的输入/ 输出#include < sys/> I nt shutdown ( int sockfd, int how); 3 、处理字节序和网络字节序之间的轮换: #include< arpa/> U int32_t htonl (uint32_t hostint32); U int16_t htons(uint16_t hostint16); U int32_t ntohl (int32); U int16_t ntohs (int16); 4 、地址格式: S truct sockaddr {S a_family_t sa_family; C har sa_data[]; }在 Linux 中,该结构定义如下: S truct sockaddr {S a_family_t sa_family; C har sa_data[14]; }; 而在 FreeBSD 中,该结构定义如下: S truct sockaddr {U nsigned char sa_len; S a_family_t sa_family; C har sa_data[14]; }; 因特网地址定义在</> 中。在 IPV4 因特网域( )中,套接字地址用如下结构 sokaddr_in 表示: S truct in_addr {I n_addr_t s_addr; }S truct sockaddr_in {S a_family_t sin_family; I n_port_t sin_port; S truct in_addr sin_addr; }; 数据类型 in_port_t 定义成 uint16_t 。数据类型 in_addr_t 定义成 uint32_t 。这些整数类型在<> 中定义并指定了相应的位数。与 IPV4 因特网域( ) 相比较, IPV6 因特网域( 6 ) 套接字地址用如下结构 sockaddr_in6 表示: S truct in6_addr {U int8_t s6_addr[16]; };S truct sockaddr_in6 {S a_family_t sin6_family; I n_port_t sin6_port; U int32_t sin6_flowinfo; S truct in6_addr sin6_addr; U int32_t sin6_scope_id; }在 Linux 中, sockaddr_in 定义如下: S truct sockaddr_in {S a_family_t sin_family; I n_port_t sin_port; S truct in_addr sin_addr; U nsigned char sin_zero[8]; };5、#include <arpa/> C onst char *