文件传输错误 64位到32位系统
来源:互联网 发布:淘宝网泳衣专卖店 编辑:程序博客网 时间:2024/05/01 20:31
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">通过socket实现的文件传输,在传输文件名等属性时在对端总是收到错误的信息,比如文件名,收到的总是空字符串,百思不得其解。后把所有的信息都输出去查看了。终于发现原来是64位系统与32位系统的字节对齐不同。对于发送的结构体信息,由于要使得其字节对齐。所以系统会自动向结构体添加添加字符使得结构体对齐</span>
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"></span><pre name="code" class="cpp">struct filehead{ int cmd; int a; int b; filename[20]; }
在64位系统中是8字节对齐
而在32为系统中默认的是4字节对齐。所以收到信息后用结构体读取其中的信息时就会产生错位。因而会造成传输过程的错误
还有就是TCP连接默认的每次发送都以最大报文长度发送,所以即使发送缓存很小的时候,也可能会在发送的时候会收到很大的报文。会造成发送和接收到的报文大小不一致的情况
0 0
- 文件传输错误 64位到32位系统
- 从 32 位系统移植到 64 位系统
- 32位系统迁移到64位系统注意事项(总结)
- 解决64位Linux系统编译32位错误
- 如何移植32位程序到64位系统
- 如何移植32位程序到64位系统
- 如何移植32位程序到64位系统
- 将32位系统升级到64位系统(不格盘)
- 将32位系统升级到64位系统(不格盘)
- 32位系统,64位系统概念
- Linux 应用程序32位 到 64位
- 32位到64位程序移植
- 32位移植到64位 注意事项
- C#程序从32位系统迁移到64位系统的问题
- C#从32位系统迁移到64位系统的问题
- 32位和64位系统
- 32位与64位系统
- 64位系统运行32位程序
- android http server播放直播码流分析
- Java nio 学习笔记(二) Charset(字符集)与Selector(异步IO)的知识
- ThreadLocal 正解
- 快速排序
- 尼康数码相机存储卡照片恢复,相机存储卡数据恢复工具
- 文件传输错误 64位到32位系统
- 多式样ProgressBar
- 人脸识别新技术准确率超99%:比肉眼更加精准
- 【编程之美】2.5寻找最大的k个数
- python基础教程_学习笔记15:标准库:一些最爱——fileinput
- 命名空间
- 协议栈各层功能及原语概念
- 斐波那契数列
- R语言中绘制彩色相关性矩阵