博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
zmq以及c/cpp for zmq
阅读量:4124 次
发布时间:2019-05-25

本文共 1435 字,大约阅读时间需要 4 分钟。

zmq的库的资料太过丰富。为了不误人子弟,还是将诸位引导到最权威的zmq作者的项目主页吧。自行github,不送。

我只说明一点,zmq的作者后面用c语言重写了zmq,新的库叫nanomsg。

相比zmq(2.0),nanomsg有不少优势,其一,sub/pub过滤是在pub方处理,zmq是sub方过滤(减少流量)。其二,nanomsg用的epoll。

如果业务非常确定只涉及C/C++以及python,则可以放心采用nanomsg,否则,不用考虑,选ZMQ是不二只选。

ZMQ 的官方sample有一些bug,特别是兼容C++ 11的时候,官方的一些写法是编译不过的。

例如ZMQ的代理相关的例子,

////  Simple message queuing broker in C++//  Same as request-reply broker but using QUEUE device//// Olivier Chamoux 
#include "zhelpers.hpp"int main (int argc, char *argv[]){ zmq::context_t context(1); // Socket facing clients zmq::socket_t frontend (context, ZMQ_ROUTER); frontend.bind("tcp://*:5559"); // Socket facing services zmq::socket_t backend (context, ZMQ_DEALER); backend.bind("tcp://*:5560"); // Start the proxy zmq::proxy(frontend, backend, nullptr); //error return 0;}

转去看看看报错的行的

inline void proxy (void *frontend, void *backend, void *capture)    {        int rc = zmq_proxy (frontend, backend, capture);        if (rc != 0)            throw error_t ();    }
我们看看zmq_proxy的定义

ZMQ_EXPORT int zmq_proxy (void *frontend, void *backend, void *capture);

接受的是指针类型,传入类的对象实际上是不妥的,严格一点的编译检查,纵使是C++ 98标准按道理也是不能编译通过的。

另外需要注意的是,别看到接收的是指针就试图通过取地址做参数,强制转换编译通不过。

int rc = zmq_proxy (&frontend, &backend, capture);  //error

https://github.com/nanomsg/nanomsg

nanomsg的几种常见模式如下官方文档,十分推荐,这是分布式消息的精华。很想转载这篇博客。。还是忍住了。

http://tim.dysinger.net/posts/2013-09-16-getting-started-with-nanomsg.html

你可能感兴趣的文章
X-Code 报错 ld: library not found for -lAFNetworking
查看>>
Bitcode
查看>>
If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
查看>>
3.5 YOLO9000: Better,Faster,Stronger(YOLO9000:更好,更快,更强)
查看>>
iOS菜鸟学习--如何避免两个按钮同时响应
查看>>
How to access the keys in dictionary in object-c
查看>>
iOS菜鸟学习—— NSSortDescriptor的使用
查看>>
hdu 3787 hdoj 3787
查看>>
hdu 3790 hdoj 3790
查看>>
hdu 3789 hdoj 3789
查看>>
hdu 3788 hdoj 3788
查看>>
zju 1003 zoj 1003
查看>>
zju 1004 zoj 1004
查看>>
zju 1005 zoj 1005
查看>>
zju 1006 zoj 1006
查看>>
【虚拟机】虚拟化架构与系统部署(Windows系统安装)
查看>>
字节跳动安卓开发实习生面试分享
查看>>
好书分享之——《能力陷进》
查看>>
阅读笔记《c++ primer》
查看>>
阅读笔记《C++标准程序库》
查看>>