基于X86平台的PC机通过网络发送一个int(32位)整数的字节顺序

1.字节顺序 

  字节顺序是指占内存多于一个字节类型的数据在内存中的存放顺序,通常有小端、大端两种字节顺序。小端字节序指低字节数据存放在内存低地址处,高字节数据存放在内存高地址处;大端字节序是高字节数据存放在低地址处,低字节数据存放在高地址处。计算机中读取数据的时候是从高地址到低地址,存储数据时候相反!

2.主机字节序到网络字节序

  基于X86平台的PC机是小端字节序的,而有的嵌入式平台则是大端字节序的。因而对int、uint16、uint32等多于1字节类型的数据,在这些嵌入式平台上应该变换其存储顺序。通常我们认为,在空中传输的字节的顺序即网络字节序为标准顺序,考虑到与协议的一致以及与同类其它平台产品的互通,在程序中发数据包时,将主机字节序转换为网络字节序,收数据包处将网络字节序转换为主机字节序

3.网络字节序

  网络字节顺序是TCP/IP中规定好的一种数据表示格式,它与具体的CPU类型、操作系统等无关,从而可以保证数据在不同主机之间传输时能够被正确解释。网络字节顺序采用big endian(大端方式)排序方式。

4.例图:

时间: 2024-11-15 14:19:58

基于X86平台的PC机通过网络发送一个int(32位)整数的字节顺序的相关文章

64位机的pl/sql不安装32位oracle的连接方式

第一步:下载即时客户端包 在Oralce官方网站上下载Oracle Instantclient Basic package.地址如下:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html,在Instant Client for Microsoft Windows (32-bit) 中选择合适的版本下载. 第二步:解压包 1>解压压缩文件至本地某路径下,例如C:\Oracle\ins

网络字节顺序

字节序,顾名思义字节的顺序,再多说两句就是大于一个字节类型的数据在内存中的存放顺序(一个字节的数据当然就无需谈顺序的问题了).其实大部分人在实际的开发中都很少会直接和字节序打交道.唯有在跨平台以及网络程序中字节序才是一个应该被考虑的问题. 在所有的介绍字节序的文章中都会提到字节序分为两类:Big-Endian和Little-Endian,引用标准的Big-Endian和Little-Endian的定义如下: a) Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高

网络发送数据字节序的处理

其实,不止是ip和port需要转换成网络字节序,如果发送端和接收端字节序不一样,有些情况下也要转换. 参考unix网络编程卷1的5.18节,下面贴几张图 以下文字复制自论大小端 对于跨平台的程序或者所用数据牵扯到不同平台的程序(例如网络编程),大小端字节序是个值得考虑的事情.本文主要讨论一下网络编程方面的大小端问题.(by peakflys) 先来说一下几个定义: a) Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端.(逻辑上的低低高高) b) Big-

为什么有的程序在64位机上跑反而比32位机更慢

最近工作遇到了一个问题,原本在32位Android机上跑的好好的程序,在某些64位机上却变慢了许多.感觉很奇怪,所以google了一下原因,网上给出的原因大部分是过多使用指针.可是为什么过多使用指针就会造成程序变慢呢?结合网上的资料,和自己的理解,我认为是如下原因造成的: (1)因为64位比32位的指针大了一倍,寻址空间从2^32大幅上升到2^64,但是这也带来了额外的问题.一个指针的存储空间也变成了原来的两倍,在做指针运算时,例如int*ptr,*(ptr+5),移动距离也变为了原来的两倍.

32位机 64位机 32位操作系统 64位操作系统

32位机: 一般指的是32位的CPU就是说CUP一次能计算32位. 64位机: 一般指的是64位的CPU就是说CPU一次能计算64位. 32位操作系统: 为32位机而制作的.指的是操作系统的字长是32位的 ,也就间接的影响了地址总线,因此,最大寻址空间也就自然是2的32次方,4G.注意:32位操作系统只能安装再32位机子上. 64位操作系统: 为64位机而制作的.指的是操作系统的字长是64位的,也就间接的影响了地址空闲,因此最大寻址空间也就是2的64次方,128G.注意:64位操作系统可以安装在

基于C/S模式的android手机与PC机通信系统的开发

原文链接: http://blog.csdn.net/nupt123456789/article/details/8213486 基于C/S模式的android手机与PC机通信系统的开发 作者:郑海波 单位:南京邮电大学 通信与信息工程学院 信号与信息处理 6班 学号:1012010638 邮箱:[email protected] -----------------------------------------------------------------------------------

基于Linux平台下网络病毒Caem.c源码及解析

Came.c型病毒在这里主要修改了用户的密码,同时对用户的终端设备进行了监视.希望与大家共同交流 转载请注明出处:http://blog.csdn.net/u010484477     O(∩_∩)O谢谢 #define HOME "/" #define TIOCSCTTY 0x540E #define TIOCGWINSZ 0x5413 #define TIOCSWINSZ 0x5414 #define ECHAR 0x1d #define PORT 39617 #define BU

手机USB共享网络与PC机U口键盘冲突的解决方案

安卓系统自带的USB共享手机网络给电脑这个功能对于没有wifi接收器的PC机来说是非常方便的,可以使用闲置的安卓机来当做PC机的wifi接收器,而且可以告别网线了. 测试时,win10系统的PC机使用手机共享的网络时发现USB接口的键盘卡顿延时很严重,可以说已经达到了无法正常使用的情况,这个问题要怎么解决呢?原来是因为win10自带的输入法-微软拼音与之冲突所致,在使用手机USB共享网络功能的同时,只要不使用-微软拼音,安装和使用其他输入法即可解决此问题(百度输入法已测试无冲突,其他PC系统或输

X86平台下基于grub2+busybo+linux-2.6.36制作linux系统

X86平台下基于grub2+busybo+linux-2.6.36制作linux系统 一.下载内核源码,grub2源码,以及busybox源码: 下载grub2源码 ftp://ftp.gnu.org/gnu/grub/ 找到需要的版本就好了,这里选择grub-1.99.tar.gz 下载busybox源码 http://www.busybox.net/downloads/ 找到需要的版本就好了,这里选择busybox-1.22.1.tar.bz2 下载linux-2.6.36内核源码 http