zoukankan      html  css  js  c++  java
  • zeroMQ 学习

    zeroMQ 是一个高性能的分布式设计的消息队列,网上有人进行过性能的比较,非常厉害,并且很大约40多种语言的API 可以调用,真实很不错的。

    而且有一点就是使用简单,不需要服务器,对于使用C/C++ 的人员来说直接使用dll 就行,就是方便,对于.net 的程序员也有相应的包装类,使用也是

    比较方便的。

    今天就使用C语言编写一下学习代码,主要是为了了解基本知识,学习使用。

    客户端的代码如下:

    #include "stdafx.h"

    #include "zmq.h"
    #include "zmq_utils.h"
    int main (int argc, char const *argv[])
    {
            void* context = zmq_ctx_new();
            printf("Client Starting…. ");
            void* request = zmq_socket(context, ZMQ_REQ);
            zmq_connect(request, "tcp://localhost:4040");
            int count = 0;
            for(;;) {
            zmq_msg_t req;
            zmq_msg_init_size(&req, strlen("hello"));
            memcpy(zmq_msg_data(&req), "hello", 5);
            printf("Sending: hello - %d ", count);
            zmq_msg_send(&req, request, 0);
            zmq_msg_close(&req);
            Sleep(1000);
            zmq_msg_t reply;
            zmq_msg_init(&reply);
            zmq_msg_recv(&reply, request, 0);
            printf("Received: hello - %d ", count);
            zmq_msg_close(&reply);
            count++;
            }
            
            zmq_close(request);
            zmq_ctx_destroy(context);
            return 0;
    }

    代码的基本就是创建丽连接,并发送数据,同时接受来自连接端的数据,比较简单。

    服务器端的代码如下:

    #include "stdafx.h"
    #include "stdio.h"
    #include "zmq.h"
    #include "zmq_utils.h"

    int _tmain(int argc, _TCHAR* argv[])
    {
        void* context = zmq_ctx_new();
        void* respond = zmq_socket(context, ZMQ_REP);
        zmq_bind(respond, "tcp://*:4040");
        printf("Starting… ");
        for(;;) {
        zmq_msg_t request;
        zmq_msg_init(&request);
        zmq_msg_recv(&request, respond, 0);
        printf("Received: hello ");
        zmq_msg_close(&request);
        Sleep(2000);
        zmq_msg_t reply;
        zmq_msg_init_size(&reply, strlen("world"));
        memcpy(zmq_msg_data(&reply), "world", 5);
        zmq_msg_send(&reply, respond, 0);
        zmq_msg_close(&reply);
        }
        zmq_close(respond);
        zmq_ctx_destroy(context);
        return 0;
        
    }
    和客户端的代码相似,也是进行创建接受数据,发送数据。

    一下是测试的界面信息。

    都是比较简单的测试,可能比较重要的就是选择好对应的开发环境支持的dll  zeroMQ  的官网有相应的安装包可供下载。

    .net 进行学习的可以直接使用vs 的包管理进行在线安装,也很方便,API 也比较好用。

  • 相关阅读:
    Sublime Text前端开发环境配置
    CSS盒模型
    Angular-如何在Angular2中使用jQuery及其插件
    六:Angular 指令 (Directives)
    五:Angular 数据绑定 (Data Binding)
    四:Angular 元数据 (Metadata)
    三:Angular 模板 (Templates)
    二:Angular 组件 (Components)
    一:Angular 模块 (Modules)
    js获取浏览器内核
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/3490893.html
Copyright © 2011-2022 走看看