hitmanx
2015-12-28 21:02:52 +08:00
2. sa_data[14]; 这到底是啥玩意?这串数组里存的“ 14 字节协议地址”究竟是什么?
3 ,文章里面说 struct sockaddr 和 struct sockaddr_in 是并列的,但是我看来都是大小不一样啊。
我已经忘得差不多了=.=,但是看了一下你的那篇文章,感觉是这个意思:
struct sockaddr {
unsigned short sa_family; /* 地址家族, AF_xxx */
char sa_data[14]; /*14 字节协议地址*/
};
struct sockaddr_in {
short int sin_family; /* 通信类型 */
unsigned short int sin_port; /* 端口 */
struct in_addr sin_addr; /* Internet 地址 */
unsigned char sin_zero[8]; /* 与 sockaddr 结构的长度相同*/
};
文中的意思是这两个结构体是等效的,可以看到除了共同的 sa_family 以外,上面的 sa_data 为 14 字节,下面的端口(2 字节) + ipv4 的地址(4 字节) + char[8],刚好也是 14 字节.