主机字节顺序和网络字节顺序
字节顺序
单个字节,不存在字节顺序这一说
字节顺序就相当于排队是从高往低排还是从低往高排。
从高往低排就是大端字节顺序
从低往高排就是小端字节顺序
具体定义
小端字节顺序(little-endian):按照内存增长方向,高位数据存储于低位内存中;
大端字节顺序(big-endian):按照内存的增长方向,高位数据存储于低位内存中;
主机字节顺序
主机字节顺序由CPU决定,看cpu的实现,有的CPU是小端字节排序,有的CPU是大端字节排序
网络字节顺序
而我们知道,当我们要传输时,需要知道目标服务器的地址,即ip地址
如果同一组数,不规定排序的话,在CPU解析时,可能得到完全不同的IP地址
网络字节顺序是TCP/IP为任意整数数据定义的统一字节顺序,是大端字节顺序。
网络字节顺序与主机字节顺序转换
unix提供一些函数进行网络字节顺序与主机字节顺序转换
//主机字节顺序转换为网络字节顺序
unit32_t htonl(unit32_t hostlong);
unit16_t htons(unit16_t hostlong);
//网络字节顺序转换为主机字节顺序
unit32_t ntonl(unit32_t hostlong);
unit16_t ntons(unit16_t hostlong);
IP地址和点分十进制串之间的转换
int inet_pton(FE_INET,const char *src,void *dst);
const char *inet_ntop(AF_INET,const void *src,char *dst,socklen_t size);
分类:
计算机组成原理
, 计算机组成原理 / 网络编程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?