要打印 sockaddr
结构体中的 IPv4 地址,可以使用 inet_ntoa()
函数将 sockaddr
结构体中的 IP 地址转换为字符串形式。
以下是一个示例代码:
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int main() {
struct sockaddr_in sa;
// 假设已经对sa进行了初始化
char ip[INET_ADDRSTRLEN];
inet_ntop(AF_INET, &(sa.sin_addr), ip, INET_ADDRSTRLEN);
printf("IPv4地址: %s\n", ip);
return 0;
}
在上述代码中,我们创建了一个 struct sockaddr_in
类型的变量 sa
。然后,使用 inet_ntop()
函数将其转换为字符串形式的 IPv4 地址,并将结果存储在字符数组 ip
中。最后,使用 printf()
打印该字符串形式的 IPv4 地址。
请注意,在使用此代码之前,需要确保已经正确初始化了 sa
结构体中的 IP 地址信息。
运行以上代码后,你将会看到类似如下输出结果:
IPv4地址: 127.0.0.1
这表示该 sockaddr
变量对应的 IPv4 地址是 “127.0.0.1”。
内容由零声教学AI助手提供,问题来源于学员提问