struct sockaddr_in
时间: 2023-03-24 11:00:41 浏览: 76
struct sockaddr_in 是一个结构体,用于表示 Internet 地址。
其中,"sockaddr" 是一个通用的套接字地址结构体类型,"in" 代表 Internet,也就是互联网。
这个结构体包含了以下几个成员变量:
- sin_family:地址族,一般设置为 AF_INET。
- sin_port:端口号,使用网络字节序(big-endian)表示。
- sin_addr:IP 地址,使用网络字节序表示。
- sin_zero:该成员变量实际上并没有什么用处,只是用来填充结构体,使其长度与 struct sockaddr 相同。
在 C 语言中,可以通过定义一个 struct sockaddr_in 类型的变量,来表示一个 Internet 地址。例如:
```
struct sockaddr_in addr;
addr.sin_family = AF_INET;
addr.sin_port = htons(80);
addr.sin_addr.s_addr = inet_addr("127.0.0.1");
memset(addr.sin_zero, 0, sizeof(addr.sin_zero));
```
上面的代码定义了一个 sockaddr_in 类型的变量 addr,将其地址族设置为 AF_INET(表示 IPv4 地址),端口号设置为 80,IP 地址设置为 127.0.0.1。其中 htons() 函数用于将主机字节序转换为网络字节序,inet_addr() 函数用于将点分十进制表示的 IP 地址转换为网络字节序表示的二进制整数。最后使用 memset() 函数将 sin_zero 成员变量清零。