您的位置:首页 > 编程语言 > C语言/C++

继 <ZMQ的学习和研究> 学习代码 Multiple socket reader in C++

2016-04-15 14:03 721 查看
Multiple socket reader in C++


//

//Reading from multiple sockets in C++

//This version uses a simple recv loop

//

// Olivier Chamoux <olivier.chamoux@fr.thalesgroup.com>

#include "zhelpers.hpp"

int main (int argc,char
*argv[])

{

//Prepare our context and sockets

zmq::context_t context(1);

//Connect to task ventilator

zmq::socket_t receiver(context, ZMQ_PULL);

receiver.connect("tcp://localhost:5557");

//Connect to weather server

zmq::socket_t subscriber(context, ZMQ_SUB);

subscriber.connect("tcp://localhost:5556");

subscriber.setsockopt(ZMQ_SUBSCRIBE,"10001 ",
6);

//Process messages from both sockets

//We prioritize traffic from the task ventilator

while (1) {

//Process any waiting tasks

bool rc;

do {

zmq::message_t task;

if ((rc= receiver.recv(&task, ZMQ_DONTWAIT))==
true) {

//process task

}

}
while(rc ==
true);

//Process any waiting weather updates

do {

zmq::message_t update;

if ((rc= subscriber.recv(&update, ZMQ_DONTWAIT))==
true) {

//process weather update

}

}
while(rc ==
true);

//No activity, so sleep for 1 msec

s_sleep(1);

}

return0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: