看看protobuf google开源的库,帮你实现序列化反序列化,跨平台的
感觉网络传输还是协议靠谱,你序列化了就跟次序有关了,但网络传输发送顺序是不能保证的,有可能后发的数据先到了,接收端收到的数据顺序就错了。
引用 7 楼 mcmcmc 的回复: boost::serialize库可以把对象序列成二进制或xml串,然后传给socket,接收方如果是同一语言写的就能反序列,且支持继承,不过被序列的类要加一点代码...被序列的类型可以通过约定的数字符号夹在数据前面. BOOST这种方法,比较不好用。 你一般是怎么序列化的。在SOCKET流中可能有几个对象。那么怎么反序列化?这是我最纠结的地方。 我感……
boost::serialize库可以把对象序列成二进制或xml串,然后传给socket,接收方如果是同一语言写的就能反序列,且支持继承,不过被序列的类要加一点代码...被序列的类型可以通过约定的数字符号夹在数据前面.
引用 3 楼 jwybobo2007 的回复:看看protobuf google开源的库,帮你实现序列化反序列化,跨平台的 哥们留步。我看过JAVA那种反序列化,直接从SOCKET流中就把对象反序列出来了。 好像有什么MAGIC。 我的思路是,用SOCKET,按长度+数据,读出完整对象后反序列化。 但是看看JAVA的实现,貌似没有什么保证传输完整对象的概念。 ……
18,356
社区成员
64,214
社区内容
加载中
试试用AI创作助手写篇文章吧