我是靠谱客的博主 柔弱马里奥,最近开发中收集的这篇文章主要介绍zmq 基本使用方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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 &lt 10; index++)                      for (int index = 0; index &lt 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 基本使用方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部