我是 Zeromq 的新手,我想使用 Zeromq 发送自定义结构。该结构体填充在 C 语言项目中,我使用该结构体从 C 项目中收集一些日志信息。然后我将此结构发送到日志存储。
struct msg {
char * item1;
unsigned int amount1;
char * name1;
unsigned int cost1;
...
};
大约有10个可变长度的字符串,我不知道如何将这个结构发送到zeromq。一种方法是将这个结构体分成10个部分,每个部分我都可以获得字符串和长度,然后使用zmq_msg_send 10次。但我想知道是否有更优雅的方法来做到这一点。
谢谢!
我尝试搜索Google和官方文档。没有例子可以解决我的问题。
您需要序列化您的结构,也就是说从中创建一个字符串。
例如,您可以序列化为 JSON 或 YAML,但这主要是为了生成仍然是人类可读的内容。其他库也考虑了二进制消息(协议缓冲区、FlatBuffers 等)。
或者您可以推出自己的。