我需要创建与 C++ 客户端和 Python 服务器的 TCP 聊天(已经开始),我在 C++ 类中有消息,例如
class Message{
public:
uint64 utc_time;
uint64 token;
string content;
};
我将这个从客户端发送到服务器,在服务器上我有 utc_time 的优先级队列,需要广播给其他人。我的问题是如何序列化这个,使用哪种格式以避免对大小类型 size 的任何跨语言依赖?(也许将来会有更多元数据,所以需要有点通用)?谁能给我建议使用哪种格式进行序列化(或仅刷新字节)?
class Persistent:
public:
Persistent(int sz):objSize(sz){}
void write(std::ostream& out)const{out.write((char*)this, objSize);}
void read(std::istream& in){in.read((char*)this, objSize);}
private:
int objSize;
};
我想到了在服务器上使用 c++ 反序列化器并在可能的情况下从 python 调用的其他可能性。这个问题有什么优雅的解决方案吗?