#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");
}