初始化sockaddr_in
时间: 2023-07-06 13:10:56 浏览: 187
sockaddr_in 是一个结构体,用于存储 IPv4 地址和端口号。它的定义如下:
```
struct sockaddr_in {
short int sin_family; // Address family
unsigned short int sin_port; // Port number
struct in_addr sin_addr; // Internet address
unsigned char sin_zero[8]; // Same size as struct sockaddr
};
```
其中,sin_family 表示地址族,一般为 AF_INET;sin_port 表示端口号,需要使用网络字节序;sin_addr 是一个 struct in_addr 类型的结构体,表示 IP 地址;sin_zero 是填充字段,一般为 0。
下面是一个初始化 sockaddr_in 的示例代码:
```
struct sockaddr_in server_addr;
memset(&server_addr, 0, sizeof(server_addr));
server_addr.sin_family = AF_INET;
server_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
server_addr.sin_port = htons(8080);
```
其中,inet_addr 函数将字符串形式的 IP 地址转换为 uint32_t 类型的整数,htons 函数将主机字节序转换为网络字节序。
阅读全文