windows下 使用vs2010的,v4.0.4的版本官方 0mq api 好像还没加上去,我是参照老版本(v3.1)的用法来的。

使用前你要对windows下动态库的使用有个基本了解。我的上一篇博客有讲,但有点乱,有时间再改一改。

这里我是用了动态库的隐式连接,需要动态库的 动态库文件".dll" , 动态库的LIB文件".lib" , 动态库的函数引入声明 "zmq.h" 和 "zmq_utils.h" 中有了(实现方式应该是我上篇博客末尾中的 "预编译开关切换类的导入导出定义");

本篇要试的是请求--回应模式:

使用步骤:

  1.Zmq动态库的获取:

  首先先下载 Zeromq 下来:http://zeromq.org/area:download,点击”Windows installers",下完安装。

  

  安装完成后,在安装目录   C:\Program Files\ZeroMQ 4.0.4 下面,你能找到刚刚的4个文件:

     ZeroMQ 4.0.4 \bin 中的  “libzmq-v100-mt-gd-4_0_4.dll”,

     ZeroMQ 4.0.4 \lib  中的 "libzmq-v100-mt-gd-4_0_4.lib",

     ZeroMQ 4.0.4 \include  中的"zmq.h" 和 "zmq_utils.h"

  复制到你 新建要用的 项目工作目录当中。

    这是服务端的,客户端也一样;

如果你的编译器不是vs2010,需要什么版本请参考:http://zeromq.org/distro:microsoft-windows

  至于Debug版在是带调试信息的,Release版文件则小很多,两个都可以用,你个人喜欢。  

  2.Zmq动态库的使用:

     1.创建server端,win32控制台 ,空项目,把 动态库文件复制进来。代码如下:

//2014-4-2  programed by sixbeauty
//zeromp 通讯测试server 端
#include "zmq.h"
#include "zmq_utils.h"            //Zeromq 函数的导入在这里帮我们实现了
#include <iostream>
#pragma comment(lib,"libzmq-v100-mt-gd-4_0_4.lib")
int main()
{std::cout << "-------------------Zeromq REP style-----------------------" <<std::endl;std::cout << "---------------------Author:SanYue------------------------" <<std::endl;void* context=zmq_init(1);    //指定zmq 处理I/0事件的thread pool 为1void* z_socket=zmq_socket(context,ZMQ_REP);zmq_bind(z_socket,"tcp://*:5555");    // accept connections on a socketint recvn=1;while(1)    //循环工作{    //接受部分zmq_msg_t recv_msg;zmq_msg_init(&recv_msg);zmq_msg_recv(&recv_msg,z_socket,0);                            //0表示非阻塞std::cout<<"第\t"<<recvn++<<"\t次收到client信息:\t";std::cout<<(char*)zmq_msg_data(&recv_msg)<<std::endl;zmq_msg_close(&recv_msg);//发送部分zmq_msg_t send_msg;zmq_msg_init_size(&send_msg,6);memcpy(zmq_msg_data(&send_msg),"world",6);zmq_sendmsg(z_socket,&send_msg,0);zmq_msg_close(&send_msg);}zmq_close(z_socket);zmq_term(context);return 0;
}

     2.client端,一样是 win32控制台 空项目,把 动态库文件复制进来。代码如下:

//2014-4-2  programed by sixbeauty
//zeromp 通讯测试client 端
#include "zmq.h"
#include "zmq_utils.h"            //Zeromq 函数的导入在这里帮我们实现了
#include <iostream>
#pragma comment(lib,"libzmq-v100-mt-gd-4_0_4.lib")
int main()
{std::cout << "-------------------Zeromq REB style-----------------------" <<std::endl;std::cout << "---------------------Author:SanYue------------------------" <<std::endl;void* context=zmq_init(1);    //指定zmq 处理I/0事件的thread pool 为1void* z_socket=zmq_socket(context,ZMQ_REQ);zmq_connect(z_socket,"tcp://localhost:5555");    // accept connections on a socketfor(int i=0;i<9;i++)    //循环工作{system("pause");    //暂停//发送部分zmq_msg_t send_msg;zmq_msg_init_size(&send_msg,6);memcpy(zmq_msg_data(&send_msg),"hello",6);zmq_msg_send(&send_msg,z_socket,0);zmq_msg_close(&send_msg);//接受部分zmq_msg_t recv_msg;zmq_msg_init(&recv_msg);zmq_msg_recv(&recv_msg,z_socket,0);                    //0表示非阻塞printf("收到Server端回答:\t");std::cout<<(char*)zmq_msg_data(&recv_msg)<<std::endl;zmq_msg_close(&recv_msg);}zmq_close(z_socket);zmq_term(context);return 0;
}

ZerMQ安装与使用相关推荐

  1. ZeroMQ:02---Linux下ZeroMQ的编译安装与运行(Ubuntu为例)

    一.安装ZeroMQ前的准备 1. 安装必须的库 安装ZeroMQ之前先安装下面的库 sudo apt-get install libtool sudo apt-get install pkg-con ...

  2. linux环境下nacos的安装+启动,阿里云服务器安装nacos

    nacos安装+启动(linux环境): 基础:安装java环境 官网下载压缩包:如 nacos-server-1.2.1.tar.gz 放在自定义目录下 # 解压 tar -xvf nacos-se ...

  3. Alibaba Cloud Linux 2.1903 LTS 64位服务器yum源下载404,Alibaba Cloud Linux 2实例中使用docker-ce、epel等YUM源安装软件失败

    [Alibaba Cloud Linux 2.1903 LTS 64位]服务器yum源下载404 failure: repodata/repomd.xml from docker-ce-stable: ...

  4. Linux下docker安装配置oracle,oracle创建用户并远程连接,实测可用!

    最近在给同学弄毕业设计的数据库,因为oracle在个人电脑上极不稳定,所以他的电脑数据库崩溃了,这时候我就在docker上为他拉了一个oracle,解决了问题. docker的安装共有以下几步,实测没 ...

  5. 在docker上安装部署tomcat项目 超简单,拿来主义

    在docker中部署tomcat,非常简单,而且省去了手动安装jdk等步骤,只需要将war包复制在容器tomcat实例中的webapps下面即可.以下将详细讲解流程: 在windows中打好包以后用w ...

  6. docker一步安装mysql,docker的魅力就在于此

    正常来说,使用docker安装东西的步骤是serach它有没有,然后pull它 这里其实只要一步(如果你没有安装过.没有端口占用等问题的话!!) $ docker run -d -p 3306:330 ...

  7. Linux下tomcat的安装与卸载以及配置(超简单)

    无敌简单的几步 1.安装 //首先你需要下载好tomcat包 sudo tar -xvzf apache-tomcat-7.0.85.tar.gz(这里是包名) -C 你要放的位置 2.卸载 rm - ...

  8. Linux下安装Java8

    Linux(ubuntu)下Java8安装 1.下载jdk8 这个看大家了,linux版本的就可以 2.创建jvm文件夹 在根目录下创建名为jvm的文件夹(在哪里创建看个人) $ sudo mkdir ...

  9. Linux安装mysql,一步到位!

    今天在腾讯云上面买了一个服务器,想要把自己的项目部署一下,就要安装mysql,以下是我的安装步骤,在网上有很多人把install敲错了,还有的少-get,种种错误试完之后,我决定发一篇 sudo ap ...

最新文章

  1. android屏幕适配的目的,Android 不同分辨率下屏幕适配的实战方案与经验总结
  2. makefile使用--Wall选项(二)
  3. 关于在hdfs上对数据创建外部表的原因
  4. 060_JavaScript作用域
  5. mysql from_unixtime(_MySQL 数据库中日期与时间函数 FROM_UNIXTIME(), UNIX_TIME()
  6. 计算机信息数据集通信的概念,南京信息工程大学数据通信与计算机网络复习题库.doc...
  7. Javascript连接数据库并查询和插入数据
  8. word文档怎么在左侧显示目录?
  9. 网工解惑:何为二层交换机,它与三层交换机的区别在哪里?
  10. P2807 三角形计数(c++)
  11. 简智音科技:抖音短视频账号限流后的解决方法
  12. Python社区采访Michael Kennedy
  13. SpringCloud笔记(Hoxton)——Netflix之Eureka服务注册与发现
  14. 【技术类】【ArcGIS对国产卫星的支持2:高分一号卫星】篇9、动态影像服务发布
  15. oracle trim函数用法详解
  16. 关机状态下启动微型计算机叫做,湖南省计算机等级考试题库
  17. 【LC刷题笔记】第四天:23+26+33(1-16)
  18. 完整项目持续集成方案
  19. 弘辽科技:拼多多账号注销后还能再次开店吗?
  20. I2S协议和hisi3520调试TLV320AIC3101音频驱动(一)

热门文章

  1. windows server 2008 (五)web服务器的搭建和部署
  2. Linux 关闭服务后 鼠标 键盘用不了
  3. VSTO学习笔记(二)Excel对象模型
  4. 在Atom中运行脚本
  5. 现实世界的Windows Azure:采访InishTech的销售及市场部主管Andrew O’Connor
  6. 成功数据恢复一例LINUX EXT3 下误删除ORACLE数据库
  7. 解决AttributeError: 'str' object has no attribute 'decode'报错问题
  8. 执行Hive语句报错:FAILED: Error in metadata: javax.jdo.JDOFatalDataStoreException: Access denied for user '
  9. 445端口 mysql_关于如何关闭window端口445的详细介绍
  10. python计算a的平方加b的平方_NumPy计算范数2的平方