sockaddr_in详细讲解
IPV4套接口地址结构通常也称为”网际套接字地址结构“,它以"sockaddr_in"命名,定义在头文件
<netinet/in.h>中
struct sockaddr_in{
uint8_t sin_len; //整个sockaddr_in结构体的长度
sa_family_t sin_family; //指定地址家族,AF_INET使用的是ipv4协议
in_port_t sin_port; //端口
struct in_addr sin_addr; //ipv4地址
char sin_zero[8]; //不使用设置为0
}
查看详细信息 man 7 ip
in_addr{
uint32_t s_addr; //无符号32位整数 必须为网络字节序
}
通用的地址结构
struct sockaddr{
uint8_t sin_len; //整个sockaddr的长度
sa_family_t sin_family; //指定该地址家族
char sa_data[14]; //由sin_family决定它的形式
}
为什么要有通用地址结构?因为不仅有tcp/ip协议,还有unix域协议。
小端法(Little-Endian)就是低位字节排放在内存的低地址端即该值的起始地址,高位字节排放在内存的高地址端。
大端法(Big-Endian)就是高位字节排放在内存的低地址端即该值的起始地址,低位字节排放在内存的高地址端。