UNIX网络编程卷一 第三章 地址定义及相关函数

本章主要说明:

1. 5中不同的套接字地址,以及其结构体定义,和使用说明。

2. 网络地址的结构体(数字)和字符串相互转换函数。

3. 字节序测试,调整函数。

4. 内存按字节操作函数。


一、 套接字地址结构

这些结构体地址很多,感觉很难记,可能要以后多实践吧。。

所有网络地址都是以sockaddr_ 开头的结构体组成,包括IPV4的 struct sockaddr_in{}, IPV6 的 struct sockaddr_in6;,UNIX域 struct sockaddr_un, 

数据链路 struct sockaddr_dl , 通用套接字地址有两个, struct sockaddr(旧) ,以及struct sockaddr_storage(新)

1.  IPV4套接字地址结构体

IP地址结构体:

struct in_addr{

in_addr_t  s_addr;

};

通常 in_addr_t 是 由一个unsigned int 类型typedef而来, 为何struct in_addr 结构体里面只有一个地址成员, 却还定义了一个结构体?

这是有历史原因的,原来把这个结构定义为多种结构体的union, 为了方便访问地址有ABC分类中的2个16位值,但是目前这种地址分类方法被淘汰了,所以这种结构体演变成这样。


struct sockaddr_in{

uint8_t  sin_len;

sa_family_t sin_family;

in_port_t sin_port;

struct in_addr sin_addr;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值