gpt4 book ai didi

c - 为什么网络程序将IP地址存储在IP地址结构中

转载 作者:行者123 更新时间:2023-11-30 16:23:48 25 4
gpt4 key购买 nike

我是 C 语言的初学者,我的教科书介绍了一些 C 语言的网络编程,并指出网络程序将 IP 地址存储在 IP 地址结构中

/* Internet address structure */
struct in_addr {
unsigned int s_addr; /* Network byte order (big-endian) */
};

我很困惑,我们不能只存储一个 32 位整数吗?

最佳答案

in_addr表示 IPv4 地址,确实可以容纳 32 位整数。

但是,还有其他类型的套接字地址不能,例如 IPv6 地址。

每种类型的套接字地址都使用自己的结构类型:

  • in_addr对于 IPv4
  • in6_addr对于 IPv6
  • char[]对于 UNIX 路径
  • 等等

通常包裹在相应的 sockaddr 内结构:

  • sockaddr_in对于 IPv4
  • sockaddr_in6对于 IPv6
  • sockaddr_un对于 UNIX
  • 等等

这就是您与套接字 API 一起使用的内容,例如 bind() , connect() , accept() , sendto() , recvfrom()

您很少需要使用类似 in_addr 的东西直接由其本身。通常,您会将其与需要通过 in_addr 传递 IPv4 地址的 API 结合使用。结构体。

关于c - 为什么网络程序将IP地址存储在IP地址结构中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53863574/

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