我是靠谱客的博主 魔幻可乐,最近开发中收集的这篇文章主要介绍 Request-reply broker in C++,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

//
//Simple request-reply broker in C++
//
// 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);
zmq::socket_t frontend (context, ZMQ_ROUTER);
zmq::socket_t backend (context, ZMQ_DEALER);

frontend.bind("tcp://*:5559");
backend.bind("tcp://*:5560");

//Initialize poll set
zmq::pollitem_t items[] = {
{ frontend, 0, ZMQ_POLLIN, 0 },
{ backend,0, ZMQ_POLLIN, 0 }
};

//Switch messages between sockets
while (1) {
zmq::message_t message;
int more;//Multipart detection

zmq::poll (&items[0],2, -1);

if (items[0].revents& ZMQ_POLLIN) {
while (1) {
//Process all parts of the message
frontend.recv(&message);
size_t more_size = sizeof (more);
frontend.getsockopt(ZMQ_RCVMORE,&more, &more_size);
backend.send(message, more?ZMQ_SNDMORE: 0);

if (!more)
break;//Last message part
}
}
if (items[1].revents& ZMQ_POLLIN) {
while (1) {
//Process all parts of the message
backend.recv(&message);
size_t more_size = sizeof (more);
backend.getsockopt(ZMQ_RCVMORE,&more, &more_size);
frontend.send(message, more?ZMQ_SNDMORE: 0);
if (!more)
break;//Last message part
}
}
}
return0;
}

最后

以上就是魔幻可乐为你收集整理的 Request-reply broker in C++的全部内容,希望文章能够帮你解决 Request-reply broker in C++所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(31)

评论列表共有 0 条评论

立即
投稿
返回
顶部