使用serialization 进行封包、解包
来源:互联网 发布:方正电子待遇 知乎 编辑:程序博客网 时间:2024/06/05 22:59
#include <boost/archive/binary_oarchive.hpp>
#include <boost/archive/binary_iarchive.hpp>
class CMyData
{
private:
friend class boost::serialization::access;
template<class Archive>
void serialize(Archive& ar, const unsigned int version)
{
ar & _tag;
ar & _text;
}
public:
CMyData():_tag(0), _text(""){}
CMyData(int tag, std::string text):_tag(tag), _text(text){}
int GetTag() const {return _tag;}
std::string GetText() const {return _text;}
private:
int _tag;
std::string _text;
};
int main()
{
CMyData d1(2012, "China, good luck");
std::ostringstream os;
boost::archive::binary_oarchive oa(os);
oa << d1;//序列化到一个ostringstream里面
//网络发送出去
//send(os.str().c_str(),os.str().length());
//////////////////////////////////////////////////////////////////////////
//接收解析
string content ;
content.assign(os.str().c_str(),os.str().length() );
CMyData d2;
std::istringstream is(content);
boost::archive::binary_iarchive ia(is);
ia >> d2;
std::cout << "CMyData tag: " << d2.GetTag() << ", text: " << d2.GetText() << "\n";
std::system("pause");
}
0 0
- 使用serialization 进行封包、解包
- python-基础笔记5-封包解包使用包
- 封包解包?
- tcp封包才,解包
- 封包的截取与解包-3
- 封包的截取与解包-2
- 封包的截取与解包-1
- UMXT协议封包/解包示例
- iOS/Android JSON封包与解包
- 可变长度网络包的封包解包
- 使用.net 3.5的DataContractJsonSerializer进行JSON Serialization
- 使用.net 3.5的DataContractJsonSerializer进行JSON Serialization
- 使用.net 3.5的DataContractJsonSerializer进行JSON Serialization
- 封包和拆包
- 封包和拆包
- 封包和拆包
- 封包和拆包
- 封包和拆包
- Memcached常用命令及使用说明
- 【codechef】Strings Classes(枚举灵活题)
- HDU 3394 Railway(点双连通分量的应用)
- day 027 UIScrollView
- LVDS/DVI/HDMI Interface
- 使用serialization 进行封包、解包
- 时间转换
- Battle (hdu 3061 最大权闭合图模板题)
- ImageButton不同状态下的实现方法
- hdu 5214 Movie
- 黑马程序员--学习日志1--计算机基础知识和Java概述
- PPTP/L2TP协议详解以及应用部署
- 数据持久,数据共享,NSFileManager,NSFileHandler,NSBundle
- java nio(四):DatagramChannel