如何使用zeromq发送可变长度的字符串?

问题描述 投票:0回答:1

我是 Zeromq 的新手,我想使用 Zeromq 发送自定义结构。该结构体填充在 C 语言项目中,我使用该结构体从 C 项目中收集一些日志信息。然后我将此结构发送到日志存储。

struct msg {
  char * item1;
  unsigned int amount1;
  char * name1;
  unsigned int cost1;

  ...
};

大约有10个可变长度的字符串,我不知道如何将这个结构发送到zeromq。一种方法是将这个结构体分成10个部分,每个部分我都可以获得字符串和长度,然后使用zmq_msg_send 10次。但我想知道是否有更优雅的方法来做到这一点。

谢谢!

我尝试搜索Google和官方文档。没有例子可以解决我的问题。

c string zeromq czmq
1个回答
0
投票

您需要序列化您的结构,也就是说从中创建一个字符串。

例如,您可以序列化为 JSON 或 YAML,但这主要是为了生成仍然是人类可读的内容。其他库也考虑了二进制消息(协议缓冲区、FlatBuffers 等)。

或者您可以推出自己的。

© www.soinside.com 2019 - 2024. All rights reserved.