请问如何用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版激活秘钥/序列号/激活码推荐 附激活工具 office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具阅读:74 
-   如何安装mysql8.0 如何安装mysql8.0阅读:31 
-   Word快速设置标题样式步骤详解 Word快速设置标题样式步骤详解阅读:28 
-   20+道必知必会的Vue面试题(附答案解析) 20+道必知必会的Vue面试题(附答案解析)阅读:37 
-   HTML如何制作表单 HTML如何制作表单阅读:22 
-   百词斩可以改天数吗?当然可以,4个步骤轻松修改天数! 百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!阅读:31 
-   ET文件格式和XLS格式文件之间如何转化? ET文件格式和XLS格式文件之间如何转化?阅读:24 
-   react和vue的区别及优缺点是什么 react和vue的区别及优缺点是什么阅读:121 
-   支付宝人脸识别如何关闭? 支付宝人脸识别如何关闭?阅读:21 
-   腾讯微云怎么修改照片或视频备份路径? 腾讯微云怎么修改照片或视频备份路径?阅读:28 















