1.通用套接字地址结构起因:
当作为一个参数传递进任何套接字函数时候,套接字地址结构总是以引用的形式来传递,并且,这样有一个参数的人核桃皆自函数必须处理例子所有支持的任何协议族的套接字地址结构。因此在头文件中定义了一个通用的套接字地址结构。
2.通用套接字地址结构
#include <sys/socket.h>
struct sockaddr{
uint8_t sa_len;
sa_family_t sa_family;
char sa_data[14];
}
3.根据bind函数看:
int bind(int,struct sockaddr *,socklen_t);
对这个函数的任何调用都要求将指定特定于协议的套接字地址结构的指针进行强制类性转换,变成指向某个通用套接字地址结构的指针,如果不强制类型转换,编译出错。