首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

socket传输序列化数据的有关问题

2012-09-04 
socket传输序列化数据的问题创建了CArchive对象,并序列化了之后,CArchive m_ArchiveOut(&m_File, CArchive

socket传输序列化数据的问题
创建了CArchive对象,并序列化了之后,
CArchive m_ArchiveOut(&m_File, CArchive::store);
pMsg->Serialize(m_ArchiveOut);
m_ArchiveOut.Flush();

怎么将数据传送,用send函数可以吗?

有代码更好 请大侠指教。

[解决办法]
传是可以的,但是传到对端,怎么解析呢?
CArchive 这个东西的原理你明白吗?
这个都是MFC自己定义的,这个东西在不同的程序,解析不了。你要解析,得实现相同的东西,麻烦呀。
还是拆分成int,char,这种基础类型再传吧。

[解决办法]
传送爱怎么传怎么传,但是在接收端怎么对收到的数据进行解析,得明确,不然就变得毫无意义了
[解决办法]
不知道有多少前人掉在TCP Socket
send(人多)send(病少)send(财富)
recv(人多病)recv(少财富)
陷阱里面啊!
http://topic.csdn.net/u/20120210/09/51109ed0-07b9-41f2-b487-a51597f2ca01.html

[解决办法]
不要想着用socket传输类对象,类对象里边各种辅助的成员《深度探索C++对象模型》,MFC的序列化的文件更不行,MFC文件的反序列化,是依赖它自己的反射机制的《深入浅出MFC》,C的结构体都不能,因为有内存对齐问题。所以只能传一些大小确定的类型,如果int8,int16,int32,int64,这一类的。
想传对象,可以用protobuf。

热点排行