/**************************************************************
技术博客
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的更多相关文章

  1. leveldb 学习记录(四)Log文件

    前文记录 leveldb 学习记录(一) skiplistleveldb 学习记录(二) Sliceleveldb 学习记录(三) MemTable 与 Immutable Memtablelevel ...

  2. JavaScript学习记录四

    title: JavaScript学习记录四 toc: true date: 2018-09-16 20:31:22 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...

  3. 4.VUE前端框架学习记录四:Vue组件化编码2

    VUE前端框架学习记录四:Vue组件化编码2文字信息没办法描述清楚,主要看编码Demo里面,有附带完整的代码下载地址,有需要的同学到脑图里面自取.脑图地址http://naotu.baidu.com/ ...

  4. zeromq学习记录(一)最初的简单示例使用ZMQ_REQ ZMQ_REP

    阅读zeromq guide的一些学习记录 zeromq官方例子 在VC下运行会有些跨平台的错误 我这里有做修改 稍后会发布出来 相关的代码与库  http://download.zeromq.org ...

  5. leveldb 学习记录(四) skiplist补与变长数字

    在leveldb 学习记录(一) skiplist 已经将skiplist的插入 查找等操作流程用图示说明 这里在介绍 下skiplist的代码 里面有几个模块 template<typenam ...

  6. zeromq学习记录(八)负载均衡 附ZMQ_ROUTER的流程分析

    /************************************************************** 技术博客 http://www.cnblogs.com/itdef/   ...

  7. zeromq学习记录(九)练习代码学习ZMQ_ROUTER ZMQ_READLER

    /************************************************************** 技术博客 http://www.cnblogs.com/itdef/   ...

  8. zeromq学习记录(六)C语言示例

    考虑到官方的示例c语言是最多的 官方未使用C++语言演示的例子就使用VC编译C语言例子 记录在此 /************************************************** ...

  9. zeromq学习记录(五)vc下多线程

    /************************************************************** 技术博客 http://www.cnblogs.com/itdef/   ...

随机推荐

  1. [转][C#]Linq 的扩展方法

    public static class LinqEx { public static IEnumerable<TResult> LeftExcludingJoin<TSource, ...

  2. UE4 UMG

    转自:https://www.cnblogs.com/kadaj/p/6412937.html 1.创建关卡类 1.创建C++类继承LevelScriptActor 2.打开关卡蓝图 Class Se ...

  3. Docker基本命令与使用 —— Docker容器的网络连接(四)

    一.Docker容器的网络基础 通过ifconfig查看docker0的网络设备,docker守护进程就是通过docker0为docker的容器提供网络连接的各种服务. docker0是Linux虚拟 ...

  4. 通过eclipse打开jdk native源码

    1.下载 eclipse http://www.eclipse.org/downloads/eclipse-packages/ 建议下载 Eclipse IDE for Eclipse Committ ...

  5. js中记住密码功能

    js中记住密码功能(在前端实现) 直接上例子(如果你也要实现的话注意改一些变量名称,jsp代码不包含样式) Jsp代码: <form class="am-form tpl-form-l ...

  6. 如何让大小一定的span能够包含“容不下”的内容

    overflow: hidden; text-overflow: ellipsis; width: 70px;(长度随意) 给span加上面的代码

  7. Spring------生命周期

    Spring------生命周期 转:https://blog.csdn.net/qq_42112846/article/details/81368862 如图所示: 一下就是对上图的解释: Spri ...

  8. maven的依赖管理详细

    依赖管理 Jar包的管理 需求:整合struts2   页面上传一个客户id 跳转页面 1 添加依赖: 打开maven仓库的视图: 2 重建索引 1. 创建maven项目(同上) 2. 跳过骨架(同上 ...

  9. 46.Scrapy框架结构

    Scrapy的介绍:Scrapy是基于Twisted的异步处理框架,是纯python语言实现的爬虫框架,特点是架构清晰,模块间耦合度低.扩展性强较为灵活. 框架结构如图所示: Engine:引擎,处理 ...

  10. openvpn通过ldap或ad统一认证解决方案思路分享

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://oldboy.blog.51cto.com/2561410/986933 缘起:成 ...