关于zeromq的pub-sub模式

anakjh 2016-01-04 04:07:14
第一次接触0mq,写了一个pub-sub的例子.不知道为何sub端zmq_recv的时收不到消息,一直停在这里..望大神不吝赐教.
代码如下
pub.cpp #include <iostream>
#include "zhelpers.hpp"
#include "timer.h"
using namespace std;

#define within(num) (int) ((float) (num) * random () / (RAND_MAX + 1.0))

int main()
{
int rst;
void *context =zmq_init(1);
void *publisher=zmq_socket(context,ZMQ_PUB);
assert(publisher);
zmq_bind(publisher,"tcp://*:5555");
while(1)
{
sleep(5);
zmq_msg_t msg;
zmq_msg_init_size (&msg, 6);
memcpy (zmq_msg_data (&msg), "hello", 6);
rst=zmq_send (publisher, &msg,6, 0);
cout<<"result==="<<rst<<endl;
}
zmq_close(publisher);
zmq_term(context);
return 1;
}

#include <iostream>
#include "zhelpers.hpp"
#include <cstdlib>

using namespace std;

int main()
{
void *context =zmq_init(1);
void *subscriber=zmq_socket(context,ZMQ_SUB);
assert(subscriber);
int rst = zmq_setsockopt (subscriber, ZMQ_SUBSCRIBE, "MR.X ", 5);
zmq_setsockopt(subscriber, ZMQ_TCP_ACCEPT_FILTER, NULL, 0);
rst=zmq_connect(subscriber,"tcp://localhost:5555");
while(1)
{
zmq_msg_t msg;
zmq_msg_init (&msg);
cout<<"1111"<<endl;
zmq_recv (subscriber, &msg,256, 0);
cout<<"2222"<<endl;
printf ("Received %s\n", (char *)zmq_msg_data(&msg));
zmq_msg_close (&msg);
}

zmq_close(subscriber);
zmq_term(context);

return 1;
}

...全文
420 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
法号随缘 2016-12-13
  • 打赏
  • 举报
回复
SUB端设置了ZMQ_SUBSCRIBE, "MR.X ",PUB端发送的信息必须以这个"MR.X "开头你的SUB端才能收到。PUB/SUB 发布/订阅,发布端可以发布多种类型数据,订阅端订阅什么收什么
anakjh 2016-01-07
  • 打赏
  • 举报
回复
自己顶一下....
ztenv 版主 2016-01-04
  • 打赏
  • 举报
回复
http://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=baidu&wd=zeromq&oq=zeromq官网&rsv_pq=ed0c5de0000091d1&rsv_t=6b0eBtnj9GWX6qz2Un6V1u66KVXsWIWY7hFT3qOBgI3yN%2BL8XLwWnsSHSfU&rsv_enter=0&rsv_sug3=3&rsv_sug1=3&rsv_sug7=100&inputT=707&rsv_sug4=1351 看下这个应该对你有帮助,在会议上和别人讨论过zeromq,但没实际用过

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧