《TCP/IP Sockets编程(C语言实现) (第2版)》 改误

本文详细解析了IPv6地址的128位结构,并纠正了一个常见的误解。通过查阅in.h文件,确认了IPv6地址使用union结构存储,包括8个uint16_t、4个uint32_t和16个uint8_t的不同表示形式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于IPv6地址的结构(P23)

struct in_addr {

uint32_t s_addr[
16];

};

  IPv6地址是128位的,因此对此生疑。经过对netinet/in.h查证,发现确实有误。以下是在in.h中的定义:

复制代码
struct in6_addr
{
union
{
uint8_t __u6_addr8[
16];
#if defined __USE_MISC || defined __USE_GNU
uint16_t __u6_addr16[
8];
uint32_t __u6_addr32[
4];
#endif
} __in6_u;
复制代码

 





本文转自五岳博客园博客,原文链接:www.cnblogs.com/wuyuegb2312/archive/2011/07/30/2121819.html,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值