网络IPC之字节序
来源:互联网 发布:淘宝上如何购买香烟 编辑:程序博客网 时间:2024/04/29 23:15
运行在一台计算机上的进程相互通信时,一般不考虑字节序顺序。字节序是一个处理器架构特性,用于指示像整数这样的大数据类型内部字节顺序。
大端字节序,最大字节地址对应数字最低字节
小端字节序,最小字节地址对应最低字节
例如:
整数2139127808的二进制表示为01111111100000001000000000000000
01111111100000001000000000000000分为4个字节
由低到高依次是
00000000 十进制对应 0
10000000 十进制对应 128
10000000 十进制对应 128
01111111 十进制对应 127
如果将其付给一个32为整数,接着用一个字符指针强制转换到这个整数地址,
大端字节序,最大字节地址对应数字最低字节
小端字节序,最小字节地址对应最低字节
例如:
整数2139127808的二进制表示为01111111100000001000000000000000
01111111100000001000000000000000分为4个字节
由低到高依次是
00000000 十进制对应 0
10000000 十进制对应 128
10000000 十进制对应 128
01111111 十进制对应 127
如果将其付给一个32为整数,接着用一个字符指针强制转换到这个整数地址,
将看到字节序的不同。
#include <stdio.h>main(){int i;char *c;i = 2139127808;c=(char*)&i;if (c[0] == 0 && c[3] == 127)printf("小端字节序处理器\n");else if (c[0] == 127 && c[3] == 0)printf("大端字节序处理器\n");}
TCP/IP协议栈采用大端字节序,所以应用程序有时需要在处理器字节序与网络字节序之间转换。
对于TCP/IP应用程序,提供了四个通用函数实施处理器字节序和网络字节序之间的转换
#include <arpa/inet.h>uint32_t htonl(uint32_t hostlong);返回值:以网络字节序表示的32位整型数uint16_t htons(uint16_t hostshort);返回值:以网络字节序表示的16位整型数uint32_t ntohl(uint32_t netlong);返回值:以主机字节序表示的32位整型数uint16_t ntohs(uint16_t netshort);返回值:以主机字节序表示的32位整型数
0 0
- 网络IPC之字节序
- 网络字节序之理解
- 网络IPC之套接字
- 网络编程之IPC通信
- 网络通信之 字节序转换原理与网络字节序、大端和小端模式
- 网络通信之 字节序转换原理与网络字节序、大端和小端模式
- 网络通信之 字节序转换原理与网络字节序、大端和小端模式
- linux网络编程之网络字节序、主机字节序、大端、小端
- 我的网络编程学习之路——主机字节序和网络字节序
- 网络通信之 字节序转换原理与网络字节序、大端和小端模式
- Linux 网络IPC 之套接字
- UNIX网络编程:IPC之消息队列
- UNIX网络编程: IPC之共享内存
- UNIX网络编程:IPC之信号量
- 关于网络字节序
- 网络数据包字节序
- 网络字节序
- 网络字节序
- 《java多线程设计模式 第八章Worker Thread》
- 如何现实servlet的单线程模式
- 初学的一点体会
- C++堆、栈、自由存储区、全局/静态存储区和常量存储区
- Android Service教程
- 网络IPC之字节序
- 安装boost_1_55_0
- Tomcat 系统架构与设计模式,第 2 部分: 设计模式分析
- eclipse构建及运行maven web项目
- 银行神秘顾客调查方案
- 编写职业水准的程序
- 【cocos2dx-3.0beta-制作flappybird】——背景介绍
- 学习怎样设置win7系统键盘的电脑知识
- 传智播客WPF视频 第一节