我的疑问与 UNIX 中的以下套接字结构有关:
struct sockaddr_in {
short sin_family; // e.g. AF_INET, AF_INET6
unsigned short sin_port; // e.g. htons(3490)
struct in_addr sin_addr; // see struct in_addr, below
char sin_zero[8]; // zero this if you want to
};
这里的成员sin_addr
是 type struct in_addr
。
但我不明白为什么有人愿意这样做,因为所有人struct inaddr
都是:
struct in_addr {
unsigned long s_addr; // load with inet_pton()
};
一切in_addr
都只是一个成员s_addr
。为什么我们不能有这样的东西:
struct sockaddr_in {
short sin_family; // e.g. AF_INET, AF_INET6
unsigned short sin_port; // e.g. htons(3490)
unsigned long s_addr ;
char sin_zero[8]; // zero this if you want to
};