zmq消息队列C++发送消息

使用zmq消息队列,用zmq_msg_init_size为zmq_msg_t分配空间,返回成功,但是空间大小一直保持在64,这是为什么?

ZeroMQ的zmq_msg_t有一个默认的最大大小限制,默认为64字节。如果您没有设置消息的大小或者设置的消息大小超过了默认限制,那么zmq_msg_init_size函数将会返回成功但是实际分配的空间大小仍然是64字节。

是不是可以用共享内存?

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7560490
  • 这篇博客你也可以参考下:消息中间件MQ 基础知识、常见问题的解决方案
  • 这篇博客也不错, 你可以看下消息中间件MQ 基础知识、常见问题的解决方案
  • 除此之外, 这篇博客: 记录libzmq的交叉编译及静态库、动态库的调用中的 一. 交叉编译libzmq源码 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    传送门
    这里提醒一下,有两点比较注意。
    1. 就是 ./configure修改配置这里:

    host和target参数,内容一致, 必须确认和你的arm交叉编译工具链的前缀是一样的!而不是简简单单的arm-linux就可以。 比如我自己因为这个原因,重新编译了一下。 改成了arm-linux-gnueabihf

    在这里插入图片描述
    这个错误就是我第一次编译生成的库和其他生成的库不是一个编译器,导致无法识别该库。

    1. 就是libzmq在第二次重新编译时,前面步骤不变,但是如果./configure没有修改 –prefix参数,仍然和第一次在同一路径下保存生成的文件的话,会报一个错误:没有权限在该目录下创建文件。此时解决问题的办法:

    修改–prefix参数,换一个路径就可以。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^