概述
zmq 简介
ZMQ(ØMQ、ZeroMQ, 0MQ)看起来像是一套嵌入式的网络链接库,但工作起来更像是一个并发式的框架。它提供的套接字可以在多种协议中传输消息,如线程间、进程间、TCP、广播等。你可以使用套接字构建多对多的连接模式,如扇出、发布-订阅、任务分发、请求-应答等。ZMQ的快速足以胜任集群应用产品。它的异步I/O机制让你能够构建多核应用程序,完成异步消息处理任务。ZMQ有着多语言支持,并能在几乎所有的操作系统上运行。ZMQ是iMatix公司的产品,以LGPL开源协议发布。
--摘自ZMQ指南
zmq的最简单的生命周期以及对应的方法
1.创建套接字:zmq_socket()
2.为套接字建立连接:zmq_bind(), zmq_connect()
在连接两个节点时,其中一个需要使用zmq_bind(),另一个则使用zmq_connect()。通常来讲,使zmq_bind() 连接的节点称之为服务端,它有着一个较为固定的网络地址;使用zmq_connect()连接的节点称为客户端,其地 址不固定。
3.发送或接受消息:zmq_send(), zmq_recv()
4.销毁套接字:zmq_close()
案例分析
#include "include/zmq.h" #include "include/zmq.h"
#include <iostream> #include <iostream>
//客户端 //服务端
int main() int main()
{ {
//建立上下文 //建立上下文
void *context = zmq_ctx_new(); void *context = zmq_ctx_new();
//建立request套接字 //建立response套接字
void *requestSend = zmq_socket(context, ZMQ_REQ); void *listenReq = zmq_socket(context, ZMQ_REP);
//request套接字连接端口 //request套接字绑定端口
zmq_connect(requestSend, "tcp://127.0.0.1:8002"); zmq_bind(listenReq, "tcp://127.0.0.1:8002");
char *buff = new char[1000]; char *buff = new char[1000];
for (int index = 0; index < 10; index++) for (int index = 0; index < 10; index++)
{ {
//发送数据 //接收数据
zmq_send(requestSend, "Hello", 1000, 0); zmq_recv(listenReq, buff, 1000, 0);
//接收数据 //发送数据
zmq_recv(requestSend, buff, 1000, 0); zmq_send(listenReq, "Hi", 1000, 0);
printf("Received msg %d [%s]n", index, buff); printf("Received msg %d [%s]n", index, buff);
memset(buff, 0x00, 1000); memset(buff, 0x00, 1000);
} }
//销毁套接字 //销毁套接字
zmq_close(requestSend); zmq_close(listenReq);
//销毁上下文 //销毁上下文
zmq_ctx_destroy(context); zmq_ctx_destroy(context);
return 0; return 0;
} }
最后
以上就是柔弱马里奥为你收集整理的zmq 基本使用方法的全部内容,希望文章能够帮你解决zmq 基本使用方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复