IPv4套接字地址结构
struct in_addr{
in_addr_t s_addr
};
struct sockaddr_in{
uint8_t sin_len;
sa_family_t sin_family;
in_port_t sin_port;
struct in_addr sin_addr;
char sin_zero[8];
};
其中,sin_len是为了支持OSI协议而添加的。
其他几个变量含义如下:
| sockaddr_in变量含义 | |
|---|---|
| sin_len | 长度字段(不一定支持) |
| sin_family | 协议名,通常是AF_INET,类型为sa_family_t,若支持sin_len则为1byte,否则通常为2byte |
| sin_port | 16位TCP或UDP端口号(网络字节序) |
| sin_addr | 32位IPv4地址(网络字节序) |
| sin_zero | 未用空字段(用于统一) |
通用套接字地址结构
struct sockaddr{
uint8_t sa_len;
sa_family_t sa_family;
char sa_data[14];
}
不同协议使用套接字时均需要强制类型转换为sockaddr。
*IPv6套接字用的还比较少,用到了再补充
本文详细介绍了IPv4套接字地址结构,包括sockaddr_in结构体的各个成员及其含义,如sin_family、sin_port等,并对比了通用套接字地址结构sockaddr。

被折叠的 条评论
为什么被折叠?



