gpt4 book ai didi

c - in_addr_t inet_ntoa 等类型的地址是什么

转载 作者:太空狗 更新时间:2023-10-29 17:00:31 25 4
gpt4 key购买 nike

好的,在发布这个问题之前,我已经检查了这里的线程 in_addr_t to string

我的问题不一样。

我知道 inet_ntoa 函数属于以下类型

char * inet_ntoa (struct in_addr in);

我想知道的是什么是in_addr_t

用在socket程序中会是什么表示。

我检查了<netinet/in.h>中的结构定义

   typedef uint32_t in_addr_t;

struct in_addr {
in_addr_t s_addr;
};

属于上述类型。我不想像 inet_ntoa 那样将 in_addr_t 打印到 char *。我想看看in_addr_t是什么。那么它是怎么做到的或者in_addr_t到底是什么以及为什么在socket编程中一次又一次地使用它。如果我没记错的话,它被定义为

typedef uint32_t in_addr_t;

所以如果in_addr_tunsigned 32 bit int 我想看看那是什么而不是 char *在 stdout 上打印 192.168.1.1 类型的输出。

最佳答案

众所周知(我们知道,对吗?)IPv4地址使用无符号的 32 位整数表示。我们这些弱小的人不太擅长处理大数(或小数),所以我们使用点十进制表示法。 (你知道你现在在 1076000524 吗?我也不知道)。

但是,自从你挖掘了 netinet并找出 the standard 明确指定的内容

The <netinet/in.h> header shall define the in_addr structure, which shall include at least the following member:

in_addr_t s_addr

这是

in_addr_t Equivalent to the type uint32_t as described in <inttypes.h>

你可以打印它。

printf("My unreadable addres is %u\n", in.s_addr);

快点,134744072 是什么?代表什么?

关于c - in_addr_t inet_ntoa 等类型的地址是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6530578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com