socket大端小端转换 总结(临时摘取,后补原创代码)

以下内容总结为网上摘取:

在进行TCP通讯时,需要进行主机字节序和网络字节的转换。可如果我要发送的数据是调用ReadFile()函数从文件里读出来的,也就是读出来的数据都是保存到char[]数组里的,那我用send函数发送时还需要转换字节序吗?

——如果只是字节流,不需要转换。一般是ip地址,端口号码,传输一些整型数的参数,才需要做转换,字节流不需要。如果头部记录了大小的,那么这个记录了大小的整型数需要转换;

——协议解析方面的数字类型需要转换,负载字节流的不需要关心;

——需要让网络认识的数据,才需要转换,比如ip,端口号。而实际发送的数据,是没有转换要求的。从文件里读取出来的数据是你自己的数据吧,这些数据转不转换看你自己,反正发出去是什么样子,接收到就还是什么样子。

时间: 2024-07-29 07:37:56

socket大端小端转换 总结(临时摘取,后补原创代码)的相关文章

socket 大端 小端 转换 (转)《二》

socket 大端 小端 转换 (转)<二> http://blog.csdn.net/kukumouse/article/details/2270356 (1)对于位域结构中的变量来说,其长度不能跨越字节,也就是说不能超过8位.当然如果设置空白位(无名变量,仅仅用作占位的)是没有这个限制的.如果一个字节剩下的位长度不够一个位域,那么从下个字节开始,也可有意置某个位域从下个字节开始.例如: struct bits4_5 {  //一个从到小的存放顺序结构体 unsigned : 10;  //

大端小端是什么?如何区分?

    今天我们谈谈计算机中的大端小端以及网络中的大端小端.参考了网上好多资料以后,从众多资料中我也按照自己的理解方式,总结一下. 学习一个新东西:我们依然是先了解一下大端小端的历史: 讲故事 这个就需要求救一下度娘,以下故事来自度娘,真假我也不知道,权当听故事: "大端"和"小端"可以追溯到1726年的Jonathan Swift的<格列佛游记>,其中一篇讲到有两个国家因为吃鸡蛋究竟是先打破较大的一端还是先打破较小的一端而争执不休,甚至爆发了战争.19

大端小端的判断

大端小端的判断 1.联合体(共用体) union U { char s[9]; int n; double d; }; 联合体和结构体的定义和使用是一样的,就不详细的赘述.必须要记住:联合体所有的成员变量都是共享同一块内存的,从相同的起始地址进行赋值.也就是给联合体的一个成员变量赋值的时候,就会改变其他成员变量的值. 联合体的大小: 对于计算一个联合体的大小(共用体)来说,不同的编译器计算的结果是不同的. VS2013: union U { char s[9]; int n; double d;

大端/小端,高字节/低字节,高地址/低地址,移位运算

其实大端小端的概念比较好理解的,大端:数据的高字节存放在内存的低地址中. 数组的声明方式是从左往右,地址逐渐增大. int8_t a[] = { 1, 2, 3 }; for (int i = 0; i < 3; i++) printf("a[%d]: %p\n", i, &a[i]); a[0]: 0x7ffce52cf290 a[1]: 0x7ffce52cf294 a[2]: 0x7ffce52cf298 int8_t是<stdint.h>定义的跨平台数

java的大端小端和c#如何对应

当前的存储器,多以byte为访问的最小单元,当一个逻辑上的地址必须分割为物理上的若干单元时就存在了先放谁后放谁的问题,于是端(endian)的问题应运而生了,对于不同的存储方法,就有大端(big-endian)和小端(little- endian)两个描述. 字节排序按分为大端和小端,概念如下 大端(big endian):低地址存放高有效字节 小端(little endian):低字节存放地有效字节 现在主流的CPU,intel系列的是采用的little endian的格式存放数据,而moto

java内存,大端小端判断

一,简介 在计算机系统中,规定:每个地址单元都会对应一个字节(8个bit),但是,在c语言中, 除了有一个字节(8个bit)的char,也有两个字节(16个bit)的short, 也有四个字节(32个bit)的long(在不同的编译器下可能不同).对于16位或者32位的处理器, 即就是大于8位的处理器,由于寄存器的宽度大于一个字节, 那么就存在如何将一个多字节的变量的数据如何存放的问题——所以,就有了大小端之分. 大端模式:是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址端

大端小端

什么是大端小端 所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中: 所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中. 80c51,msp430,stm32 80c51是大端 msp4340采用小端模式读写存储器 如果是STM32F101xx和STM32F103xx仅支持小端模式,虽然Cortex-M3是大小都支持的.

大端小端的概念

对于一个由2个字节组成的16位整数,在内存中存储这两个字节有两种方法:一种是将低序字节存储在起始地址,这称为小端(little-endian)字节序:另一种方法是将高序字节存储在起始地址,这称为大端(big-endian)字节序.术语"小端"和"大端"表示多个字节值的哪一端(小端或大端)存储在该值的起始地址. #define  _CRT_SECURE_NO_WARNINGS 1 #include <stdlib.h> #include <stdio

【转】轻松记住大端小端的含义(附对大端和小端的解释)

原文网址:http://www.cnblogs.com/wuyuegb2312/archive/2013/06/08/3126510.html 或许你曾经仔细了解过什么是大端小端,也动手编写了测试手头上的机器上是大端还是小端的程序,甚至还编写了大端小端转换程序:但过了一段时间之后,当你再看到大端和小端这两个字眼,你的脑中很快浮起了自己曾经做过的工作,却总是想不起究竟哪种是大端.哪种是小端,然后又去查以前写的记录?更让人不快的是,这种经历反反复复,让你十分困扰.如果你和以前的笔者一样,有过这种不快