首页 > 代码库 > Linux 网络编程详解一
Linux 网络编程详解一
IPv4套接字地址结构 struct sockaddr_in { uint8_t sinlen;(4个字节) sa_family_t sin_family;(4个字节) in_port_t sin_port;(2个字节) struct in_addr sin_addr;(4个字节) char sin_zero[8]; }; sin_len:整个sockaddr_in结构体的长度,部分Linux内核版本没有该成员 sin_family:指定该地址家族,一般设置为AF_INET(使用TCP,UDP协议) sin_port:端口 sin_addr:IPv4的地址 sin_zero:暂不使用,一般将其设置为0 通用地址结构 struct sockaddr { uint8_t sin_len;(4个字节) sa_family_t sin_family;(4个字节) char sa_data[14]; }; sin_len:整个sockaddr结构的长度 sin_family:指定该地址家族 sa_data:由sin_family决定它的形式 结论:struct sockaddr_in与struct sockaddr结构大小相同
字节序 大端字节序 --最高有效位存储与最低内存地址处,最低有效位存储于最高内存地址处 小端字节序 --最高有效位存储于最高内存地址处,最低有效位存储于最低内存地址处 主机字节序 --不同主机有不同的字节序,如x86小端字节序,,Motorola 6800为大端字节序 网络字节序 --网络字节序规定为大端字节序 字节序说明:一个int类型变量254存储在内存中,如果变量的百位存储于内存地址条上的低地址处,
个位存储于内存地址条上的高地址处(即变量存储序列和内存地址序列相反)这就是大端字节序,反之则是小端字节序。
各个主机的字节序是不同的,但是在网络中传输,必须要一个统一的字节序,这就是网络字节序。
Linux 网络编程详解一
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。