【1 背景】
在Socket通信中,要传输结构化的数据或者要进行协议数据传输的时候,发送端必须要构造结构体进行数据传输。
接收端也必须通过同样的结构体进行解析。
但Socket传输结构体数据时候,稍有不慎就会出现:1)解析数据出错;2)接收数据不完整;3)解析为乱码等的Bug。
【2 举例】
如下是接收端解析数据为乱码甚至崩溃的一类常见错误。
结构体也就是一段连续的内存。 但是类似如下的结构体:
typedef struct _PER_SPIDER_INFO{UINT nTimeDelay; UINT nRtnCode; UINT nUrlPageLen; char* pszUrlPage; }PER_SPIDER_INFO;不能直接通过传输的。
【3 根本原因】
如下:
1)结构体成员pszUrlPage是指针,指向的是结构体以外的内存
继续阅读与本文标签相同的文章
下一篇 :
借助URLOS快速安装beego web框架
-
Three.js模型隐藏或显示
2026-05-24栏目: 教程
-
logstash-input-jdbc实现oracle 与elasticsearch实时同步详解
2026-05-24栏目: 教程
-
Unity c# 状态机的简单入门
2026-05-24栏目: 教程
-
logstash-input-jdbc 同步原理及相关问题解读
2026-05-24栏目: 教程
-
Unity查找物体的四大主流方法及区别
2026-05-24栏目: 教程
