1)套接口地址结构
struct in_addr
{
in_addr_t s_addr;
};
struct sockaddr_in
{
unit8_t sin_len; //结构体的长度
sa_family_t sin_family; //地址协议族,AF_INET
in_port_t sin_port; //端口号
struct in_addr sin_addr; //32bit的ipv4 IP地址
};
- 通用套接口地址
当将套接口地址传递给套接口函数时以指针的形式传递,但是通过指针来取得套接口参数的套接口函数必须要能够处理任何协议族的套接口地址结构。所以在
struct sockaddr
{
unit8_t sa_len;
sa_family_t sa_family;
char sa_data[14];
};
于是套接口函数被定义为指向通用套接口地址结构的指针,如bind的函数原型为