zeromq学习记录(四)使用ZMQ_ROUTER ZMQ_DEALER
/**************************************************************技术博客http://www.cnblogs.com/itdef/技术交流群群号码:324164944欢迎c c++ windows驱动爱好者 服务器程序员沟通交流**************************************************************/

这两张图显示了网络结构的改变
客户端与服务端的通讯不必互相了解 各自只需连接到BROKER即可。
两张图之间的变化 有许多细节需要注意 比如端点的ID 发送多部分组成信息 ZMQ_ROUTER ZMQ_DEALER的使用
以及使用ZMQ_POLL管理多链接
但是此处仅仅使用zmq_proxy,将以上内容均封装起来。
上代码
// client.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include "zhelpers.hpp" int main()
{
zmq::context_t context(); zmq::socket_t requester(context, ZMQ_REQ);
requester.connect("tcp://localhost:5559"); for (int request = ; request < ; request++) { s_send(requester, "Hello");
std::string string = s_recv(requester); std::cout << "Received reply " << request
<< " [" << string << "]" << std::endl;
}
return ;
}
// broker.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include "zhelpers.hpp" int main(int argc, char *argv[])
{
zmq::context_t context(); // 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);
return ;
}
// worker.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include "zhelpers.hpp" int main()
{
zmq::context_t context(); zmq::socket_t responder(context, ZMQ_REP);
responder.connect("tcp://localhost:5560"); while ()
{
// Wait for next request from client
std::string string = s_recv(responder); std::cout << "Received request: " << string << std::endl; // Do some 'work'
Sleep(); // Send reply back to client
s_send(responder, "World"); }
return ;
}
还有使用zmq_proxy的天气更新服务器的代码,参考指南示例
zeromq学习记录(四)使用ZMQ_ROUTER ZMQ_DEALER的更多相关文章
- leveldb 学习记录(四)Log文件
前文记录 leveldb 学习记录(一) skiplistleveldb 学习记录(二) Sliceleveldb 学习记录(三) MemTable 与 Immutable Memtablelevel ...
- JavaScript学习记录四
title: JavaScript学习记录四 toc: true date: 2018-09-16 20:31:22 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...
- 4.VUE前端框架学习记录四:Vue组件化编码2
VUE前端框架学习记录四:Vue组件化编码2文字信息没办法描述清楚,主要看编码Demo里面,有附带完整的代码下载地址,有需要的同学到脑图里面自取.脑图地址http://naotu.baidu.com/ ...
- zeromq学习记录(一)最初的简单示例使用ZMQ_REQ ZMQ_REP
阅读zeromq guide的一些学习记录 zeromq官方例子 在VC下运行会有些跨平台的错误 我这里有做修改 稍后会发布出来 相关的代码与库 http://download.zeromq.org ...
- leveldb 学习记录(四) skiplist补与变长数字
在leveldb 学习记录(一) skiplist 已经将skiplist的插入 查找等操作流程用图示说明 这里在介绍 下skiplist的代码 里面有几个模块 template<typenam ...
- zeromq学习记录(八)负载均衡 附ZMQ_ROUTER的流程分析
/************************************************************** 技术博客 http://www.cnblogs.com/itdef/ ...
- zeromq学习记录(九)练习代码学习ZMQ_ROUTER ZMQ_READLER
/************************************************************** 技术博客 http://www.cnblogs.com/itdef/ ...
- zeromq学习记录(六)C语言示例
考虑到官方的示例c语言是最多的 官方未使用C++语言演示的例子就使用VC编译C语言例子 记录在此 /************************************************** ...
- zeromq学习记录(五)vc下多线程
/************************************************************** 技术博客 http://www.cnblogs.com/itdef/ ...
随机推荐
- windows7 64位安装tensorflow 1.4.0 CPU版本
机器学习和深度学习真是新生代的宠儿,我也被安排来搞这个了,这下是真的从0开始了.看了几天ppt,想跑跑代码试试,装个环境. 都说tensorflow很火很好用,反正我什么也不懂,准备把这些框架一个一个 ...
- Python——python读取xml实战,作业6(python programming)
cd_catalog.xml <?xml version="1.0" encoding="ISO-8859-1"?> <!-- Edited ...
- XML和实体类之间相互转换(序列化和反序列化)
我们需要在XML与实体类,DataTable,List之间进行转换,下面是XmlUtil类,该类来自网络并稍加修改. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...
- systemverilog的高亮显示
1. 在_vimrc文件末尾添加: syntax on "确定vim打开语法高亮 filetype on "打开文件类型检测 filetype plugin on "为特 ...
- 【阿里云服务器】外网无法访问tomcat下部署的项目
问题提出:在ESC实例上部署了jdk和tomcat(略,上云了,上云了),启动tomct后,内网可以访问8080端口,外网无法访问8080. 系统环境:winsdow 2008 企业版 解决方案: 在 ...
- vue 一些可以优化的地方
第一招:化繁为简的Watchers 场景还原: created(){ this.fetchPostList() }, watch: { searchInputValue(){ this.fetchPo ...
- jmeter压测之添加负载机
jmeter压测基本介绍一般基准测试(基准测试时间一般为5分钟)后压测的时间是10-15分钟: 实施测试之前要拿到测试指标 例如:tps要达到多少响应时间要达到多少并发数要达到多少TPS :服务端每秒 ...
- 为何要使用ViewModel
ViewModel类是用来存储和管理与UI相关的数据,在设计之初就考虑到生命周期的影响.ViewModel允许数据在屏幕旋转等配置变化后存活. Android framework管理UI控制器(如Ac ...
- Docker 安装 oracle 并使用 navicat 实现外部连接
1,拉取 docker 镜像:docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g 1.1 , 该镜像由阿里云提供,比较大, ...
- shell脚本运行java程序jar
在UBuntu上部署项目的时候,我们往往通过一段shell来启动程序,甚至是通过crontab定时任务来定时的调用java程序,但是很奇怪的一个问题就是,比如我写了一个如下的shell脚本: #!/b ...