UNP——第三章,套接字编程介绍
1.套接字结构 多数套接字函数都有套接字结构参数,每个协议族都定义了自己的套接字结构,以 sockaddr_ 开始,并对应协议族的唯一后缀。 如 IPv4 sockaddr_in IPv6 sockaddr_in6 Unix sockaddr_un 链路 sockaddr_dl 存储 sockaddr_storage struct sockaddr_in { uint8_t sin_len; sa_family_t sin_family; in_port_t sin_port; struct in_addr sin_addr; char sin_zero[8]; } 其中 sin_len 用于内核层,在应用读写都无意义。 sin_zero 没有用处。 POSIX也要求要定义 sin_family, sin_addr, sin_port 2.传参 套接字调用,参数以引用方式,在内核和应用传递。 当参数 ,应用 ----> 内核,需要传 len_of_socket 如: bind, connect, sendto 内核 -----> 应用,需要传 &len_of_socket 即 len_of_socket 做输入,输出参数。 3.字节序 网络字节序为大端,即先存储数据高位。 小端,则为 先存储数据地位。