zeromq学习记录(二)天气更新服务器使用ZMQ_SUB ZMQ_PUB
/**************************************************************技术博客http://www.cnblogs.com/itdef/技术交流群群号码:324164944欢迎c c++ windows驱动爱好者 服务器程序员沟通交流**************************************************************/
// wuserver_cpp.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
//
// Weather update server in C++
// Binds PUB socket to tcp://*:5556
// Publishes random weather updates
//
// Olivier Chamoux <olivier.chamoux@fr.thalesgroup.com>
//
//#include <zmq.hpp>
#include <stdio.h>
#include <stdlib.h>
#include <time.h> #if (defined (WIN32))
#include <zhelpers.hpp>
#endif //#define within(num) (int) ((float) num * random () / (RAND_MAX + 1.0)) int main() { // Prepare our context and publisher
zmq::context_t context();
zmq::socket_t publisher(context, ZMQ_PUB);
publisher.bind("tcp://*:5556");
//publisher.bind("ipc://weather.ipc"); // Not usable on Windows. // Initialize random number generator
srandom((unsigned)time(NULL));
while () { int zipcode, temperature, relhumidity; // Get values that will fool the boss
zipcode = within();
temperature = within() - ;
relhumidity = within() + ; // Send message to all subscribers
zmq::message_t message();
snprintf((char *)message.data(), ,
"%05d %d %d", zipcode, temperature, relhumidity);
publisher.send(message); }
return ;
}
// wuclient_cpp.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include <zmq.hpp>
#include <iostream>
#include <sstream> int main(int argc, char *argv[])
{
zmq::context_t context(); // Socket to talk to server
std::cout << "Collecting updates from weather server…\n" << std::endl;
zmq::socket_t subscriber(context, ZMQ_SUB);
subscriber.connect("tcp://localhost:5556"); // Subscribe to zipcode, default is NYC, 10001
const char *filter = "";
subscriber.setsockopt(ZMQ_SUBSCRIBE, filter, strlen(filter)); // Process 100 updates
int update_nbr;
long total_temp = ;
for (update_nbr = ; update_nbr < ; update_nbr++) { zmq::message_t update;
int zipcode, temperature, relhumidity; subscriber.recv(&update); std::istringstream iss(static_cast<char*>(update.data()));
iss >> zipcode >> temperature >> relhumidity; total_temp += temperature;
}
std::cout << "Average temperature for zipcode '" << filter
<< "' was " << (int)(total_temp / update_nbr) << "F"
<< std::endl;
getchar();
return ;
}
zeromq学习记录(二)天气更新服务器使用ZMQ_SUB ZMQ_PUB的更多相关文章
- JavaScript学习记录二
title: JavaScript学习记录二 toc: true date: 2018-09-13 10:14:53 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...
- Material Calendar View 学习记录(二)
Material Calendar View 学习记录(二) github link: material-calendarview; 在学习记录一中简单翻译了该开源项目的README.md文档.接下来 ...
- Spring Boot学习记录(二)--thymeleaf模板 - CSDN博客
==他的博客应该不错,没有细看 Spring Boot学习记录(二)--thymeleaf模板 - CSDN博客 http://blog.csdn.net/u012706811/article/det ...
- zeromq学习记录(四)使用ZMQ_ROUTER ZMQ_DEALER
/************************************************************** 技术博客 http://www.cnblogs.com/itdef/ ...
- OpenFlow1.3.3 学习记录(持续更新)
OpenFlow1.3.3 学习记录(持续更新) 正在学习OpenFlow1.3,该篇笔记将日常更新,主要内容大致为官方文档的总结与翻译. 交换机组件 按照优先级顺序进行包匹配,如果匹配到流表项,则执 ...
- 2.VUE前端框架学习记录二
VUE前端框架学习记录二:Vue核心基础2(完结)文字信息没办法描述清楚,主要看编码实战里面,有附带有一个完整可用的Html页面,有需要的同学到脑图里面自取.脑图地址http://naotu.baid ...
- zeromq学习记录(一)最初的简单示例使用ZMQ_REQ ZMQ_REP
阅读zeromq guide的一些学习记录 zeromq官方例子 在VC下运行会有些跨平台的错误 我这里有做修改 稍后会发布出来 相关的代码与库 http://download.zeromq.org ...
- JavaWeb学习(二)———Tomcat服务器学习和使用(一)
一.Tomcat服务器端口的配置 Tomcat的所有配置都放在conf文件夹之中,里面的server.xml文件是配置的核心文件. 如果想修改Tomcat服务器的启动端口,则可以在server.xml ...
- oracle数据库学习记录(持续更新中...)
--------------------------------------------day1------------------------------------------------- 1. ...
随机推荐
- xrange
range返回一个列表 xrange反会xrange这个类的实例,每次遍历返回一个值.比range的执行效率要高 在python3中range = xrange range(1,10,2) - ...
- uva-10167-枚举
题意:生日蛋糕上面有2N草莓,怎么切能够将蛋糕和草莓平分成俩份,直接枚举,A和B,草莓不能落在直线上 #include <iostream> #include <stdio.h> ...
- 7.css实现三角形
1.效果: 2.代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...
- 《GPU高性能编程CUDA实战》第十章 流
▶ 本章介绍了页锁定内存和流的使用方法,给出了测试内存拷贝.(单 / 双)流控制下的内存拷贝的例子. ● 测试内存拷贝 #include <stdio.h> #include " ...
- nodejs 获取文件夹中所有文件、图片 名
//获取项目工程里的图片 var fs = require('fs');//引用文件系统模块 var image = require("imageinfo"); //引用image ...
- oracle 数据字典
select * from dictionary; --数据字典 数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的. 比如一个表的创建者信息,创建时间信息,所属表空间信息,用户访 ...
- egret 精简游戏项目
新建一个游戏项目,我们可以删除resource文件夹下除了default.thm.json和default.res.json文件,一旦删除,当新建皮肤exml文件时会报错 还可以删除src文件夹里除了 ...
- UIScrollView判断用户划到底部 (可用于实现loading more)
-(void)scrollViewDidScroll:(UIScrollView *)scrollView { //当scrollview中content的竖直位移加上scrollView的高度大于等 ...
- centos升级python2.7
http://meiyitianabc.blog.163.com/blog/static/10502212720133192489840/
- ubuntu下安装jdk,tomcat,mysql,ftp,telnet,svn
需求分析:自己弄了个小网站,想放到云服务器上,同时把自己积累的代码也放上去,服务器上的文件可以简单的在windows上查看,也可以方便的通过windows连接linux服务器. 解决:运行网站要用到j ...