首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么网络程序在IP地址结构中存储IP地址

问为什么网络程序在IP地址结构中存储IP地址
EN

Stack Overflow用户
提问于 2018-12-20 14:38:01
回答 1查看 55关注 0票数 0

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

代码语言:javascript
复制
/* Internet address structure */
struct in_addr {
unsigned int s_addr; /* Network byte order (big-endian) */
};

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

EN

回答 1

Stack Overflow用户

发布于 2018-12-21 07:17:33

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

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

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

适用于IPv4

  • in6_addr的
  • in_addr适用于IPv6
  • char[]的UNIX paths
  • etc

通常包装在相应的sockaddr结构中:

适用于IPv4

  • sockaddr_in6的
  • sockaddr_in适用于IPv6
  • sockaddr_un的UNIX
  • etc

这是您在bind()、connect()、accept()、sendto()、recvfrom()等套接字API中使用的。

你很少需要直接使用像in_addr这样的东西。通常,您可以将其与需要通过in_addr结构传递IPv4地址的API结合使用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53863574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档