socket编程学习(一)字节序
来源:互联网 发布:java heap space 原因 编辑:程序博客网 时间:2024/05/17 01:28
网络字节序有分两种:
大端字节序:最高有效位存储于最低内存地址,最低有效位存储于最高内存地址
小端字节序:最高有效位存储于最高内存地址,最低有效位存储于最低内存地址
举个例子
unsigned int x =0x12345678;
unsigned char *p = (unsigned char *)&x;
printf("%x_%x_%x_%x",p[0],p[1],p[2],p[3]);
终端打印的信息为78,56,34,12
分析:
p[0]是低地址,存放的是低字节数据
p[3]是高地址,存放的是高字节数据
很明显。我的X86平的的字节序是 小端字节序。
由于socket网络通信是采用大端字节序。必不可少需要将小端的数据转成大端字节序、
我们举个例子
unsigned int x = 0x12345678;
unsigned int y = htonl(x);
p=(unsigned char *)&y;
printf("%x,%x,%x,%x\n",p[0],p[1],p[2],p[3]);
终端打印的信息为12,34,56,78
说明我们的数据通过htonl转化成了大端字节序。
字节序转换函数有
htonl()
htons()
ntohl()
ntohs()
h代表host ;
n代表network;
s代表short;
l代表long
0 0
- socket编程学习(一)字节序
- linux网络编程之socket(一):socket概述和字节序、地址转换函数
- linux网络编程之socket(一):socket概述和字节序、地址转换函数
- linux网络编程之socket(一):socket概述和字节序、地址转换函数
- linux网络编程之socket(一):socket概述和字节序、地址转换函数
- linux网络编程之socket(一):socket概述和字节序、地址转换函数
- linux网络编程之socket(一):socket概述和字节序、地址转换函数
- linux网络编程之socket(一):socket概述和字节序、地址转换函数
- linux网络编程之socket(一):socket概述和字节序、地址转换函数
- socket编程:字节序
- socket编程学习系列(一)
- JAVA Socket编程学习(一)
- 网络编程学习笔记(一)-----socket
- Linux下Socket编程学习(一)
- JAVA Socket 编程学习笔记(一)
- JAVA Socket 编程学习笔记(一)
- Socket编程学习笔记(一)
- AVA Socket 编程学习笔记(一)
- 3D可视化技术之Cult3D
- 关闭交互式服务检测(UI0Detect)
- hdu 1385 Minimum Transport Cost(判断字典序+输出路径)
- 3-9-模拟银行排队过程-栈和队列-第3章-《数据结构》课本源码-严蔚敏吴伟民版
- 类的继承和接口实现
- socket编程学习(一)字节序
- 01-Json基础
- 生活相关的30个定律
- 联合体(union)的使用方法及其本质
- 【HDU】 4722 Good Numbers
- 网络协议
- 插补器Interpolator配图详解
- 本地文件无法复制到远程桌面
- 2-2HDFS的架构