windows和Linux之间socket传输结构体关于字节对齐产生的问题
来源:互联网 发布:键盘吉他软件 编辑:程序博客网 时间:2024/05/18 21:10
这个是我在做转码机的时候发现的问题。这个转码机大致的思路是:将转码机上面的数据用结构体打包通过socket发送给Linux客户端。Linux客户端也是用结构体去接收。
发送的过程中出现了这样一个问题,就是发送的结构体数据中有不同字节的数据时,发生错误。
问题原因:
是因为windows和Linux平台上面结构体字节对齐的个数不同产生错误。程序中设置了windows上的对齐字节为1,而之前Linux没有设置(默认为4个字节),导致接收数据错误。
解决方法:
设置windows和Linux上面的结构体对齐字节个数相等。
设置方案:
在结构体前加上这句代码
#pragma pack(字节对齐的个数);
或者在vs中一次点击 项目---> ....属性---> 配置属性 ---> c/c++ ---> 代码生成 中 结构成员对齐 设置。
0 0
- windows和Linux之间socket传输结构体关于字节对齐产生的问题
- 关于结构体字节对齐的问题
- 关于结构体的长度问题(字节对齐)
- 结构体和联合体的字节对齐问题
- 关于结构体的字节对齐
- Windows和Linux下的字节对齐
- Windows和Linux下的字节对齐
- 结构体的字节对齐问题
- 结构体的sizeof字节对齐问题
- 结构体的字节对齐问题
- 结构体中字节对齐的问题
- 关于结构体字节对齐
- 结构体有字节对齐和字节补齐问题
- 结构体和类的字节对齐
- 关于结构体对齐和结构体位域的问题
- Linux socket 传输和接受结构体
- 结构体字节对齐问题
- 结构体字节对齐问题
- 基于Twemproxy的Redis集群方案
- 【Maven】maven配置默认使用的JDK版本
- OpenCV图像的轮廓的匹配
- CA framwork
- 第4周项目2-分数类的雏形
- windows和Linux之间socket传输结构体关于字节对齐产生的问题
- 淘宝刷单技巧
- 软件架构——生态思维
- 停下来,聆听风的声音
- HttpWatch工具简介及使用技巧
- hdu 1506 Largest Rectangle in a Histogram (DP)
- [寒江孤叶丶的Cocos2d-x之旅_30]Cocos2d-x 3.5 EditBox无法显示字体的原因
- hdu1015--Safecracker(dfs)
- Objective-C总Runtime的那点事儿(一)消息机制