Мое сомнение связано со следующей структурой сокетов в 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
имеет тип 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
};