关于网络字节序和主机字节序的转换
2016-07-28 17:37
477 查看
网络字节顺序及其转换函数
(1) 网络字节顺序
每一台机器内部对变量的字节存储顺序不同,而网络传输的数据是一定要统一顺序的。所以对内部字节表示顺序与网络字节顺序不同的机器,一定要对数据进行转换,从程序的可移植性要求来讲,就算本机的内部字节表示顺序与网络字节顺序相同也应该在传输数据以前先调用数据转换函数,以便程序移植到其它机器上后能正确执行。真正转换还是不转换是由系统函数自己来决定的。
(2) 有关的转换函数
* unsigned short int htons(unsigned short int hostshort):
主机字节顺序转换成网络字节顺序,对无符号短型进行操作4bytes
* unsigned long int htonl(unsigned long int hostlong):
主机字节顺序转换成网络字节顺序,对无符号长型进行操作8bytes
* unsigned short int ntohs(unsigned short int netshort):
网络字节顺序转换成主机字节顺序,对无符号短型进行操作4bytes
* unsigned long int ntohl(unsigned long int netlong):
网络字节顺序转换成主机字节顺序,对无符号长型进行操作8bytes
注:以上函数原型定义在netinet/in.h里
(1) 网络字节顺序
每一台机器内部对变量的字节存储顺序不同,而网络传输的数据是一定要统一顺序的。所以对内部字节表示顺序与网络字节顺序不同的机器,一定要对数据进行转换,从程序的可移植性要求来讲,就算本机的内部字节表示顺序与网络字节顺序相同也应该在传输数据以前先调用数据转换函数,以便程序移植到其它机器上后能正确执行。真正转换还是不转换是由系统函数自己来决定的。
(2) 有关的转换函数
* unsigned short int htons(unsigned short int hostshort):
主机字节顺序转换成网络字节顺序,对无符号短型进行操作4bytes
* unsigned long int htonl(unsigned long int hostlong):
主机字节顺序转换成网络字节顺序,对无符号长型进行操作8bytes
* unsigned short int ntohs(unsigned short int netshort):
网络字节顺序转换成主机字节顺序,对无符号短型进行操作4bytes
* unsigned long int ntohl(unsigned long int netlong):
网络字节顺序转换成主机字节顺序,对无符号长型进行操作8bytes
注:以上函数原型定义在netinet/in.h里
相关文章推荐
- AngularJS下$http上传文件(AngularJS file upload/post file)
- 计算机网络Socket编程之TCP协议
- 男子轻信网上兼职被骗 寻“网络警察”求助再陷骗局
- 孙鑫 lesson14 network
- 数据挖掘——SVM和神经网络
- 无侵入方面编程-用HttpModule+SoapExtension监视页面执行参数(二)
- 利用iptables实现基于端口的网络流量统计
- 无侵入方面编程-用HttpModule+SoapExtension监视页面执行参数(一)
- HttpClient自动处理Gzip,Deflate压缩
- HTTP状态码详解
- 网络通信
- 牛客网 7-28 网络基础 操作系统 编译与体系结构 30题知识点总结
- CentOS网络配置
- [转] 携程App网络服务通道治理和性能优化@2016
- Redhat 7.1使用CentOS 7 的Yum网络源
- BP神经网络python简单实现
- asp.net XMLHttpRequest 进度条以及lengthComputable always false的解决办法
- HTTP协议
- 获取网络状态
- Nohttp请求图片的两种简答的方式:普通请求以及缓存请求