请问如何用ICS的SOCKET组件发送并接收一组结构体?
时间:2011-10-23
来源:互联网
结构体内包含string integer char,希望能给出相关的代码,谢谢了:)
作者: cm2004 发布时间: 2011-10-23
socket传送的都是字节流。
所以你只要把要传送的对象转换的字节流,传输过去以后再还原成对象就可以了。
说白了字节流就是两个内容,一个指针,一个指针指向的内容的长度。
如果是传送结构体,你只要依次把record里的成员依次转换到一个上述指针指向的内容就可以了。需要特别注意的是,delphi的record是会做内部优化的,实际占用的内存及内存的机构你跟想想的会不一样。你应该用
packed record
而且string是一个动态管理的堆内存对象,用sizeof计算record的长度的时候并不包含string的真实长度,而是string的变量的长度,因此永远都是32。
我想到的就是要注意上述问题。
所以你只要把要传送的对象转换的字节流,传输过去以后再还原成对象就可以了。
说白了字节流就是两个内容,一个指针,一个指针指向的内容的长度。
如果是传送结构体,你只要依次把record里的成员依次转换到一个上述指针指向的内容就可以了。需要特别注意的是,delphi的record是会做内部优化的,实际占用的内存及内存的机构你跟想想的会不一样。你应该用
packed record
而且string是一个动态管理的堆内存对象,用sizeof计算record的长度的时候并不包含string的真实长度,而是string的变量的长度,因此永远都是32。
我想到的就是要注意上述问题。
作者: truexf 发布时间: 2011-10-24
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28