CentOS7下Zeromq的下载/编译/安装

Zeromq简介

Zeromp是一个C++编写的高性能分布式消息,是一个非常简单好用的传输层,使得Socket编程更加简单、简洁和性能更高效。

Zeromq特点

  • 支持高并发的异步Socket框架
  • 协议比TCP更快,适用于大型集群和分布式计算
  • 提供多种消息传递机制,如inproc/IPC/TCP/multicast等
  • 内置丰富的组合模式,可用于简化大型分布式计算框架
  • 提供异步I/O模式,适用于可扩展的多核应用开发
  • 拥有活跃的开发者社区提供技术支持,发展相当迅速
  • 支持超过30种的编程语言,如C/C++/Java/.Net/Python/PHP等
  • 良好的跨平台性,支持多种OS,如Linux/Windows/OS X等
  • 拥有iMatix公司的商业级别支持,却使完全免费的

下载与安装

1)下载

git clone git://github.com/zeromq/libzmq.git解码

2)编译与安装

cd libzmq/

yum install gettext

./autogen.sh

./configure

make check

make

make install即可。

3)简单测试

// server.cpp
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <assert.h>
#include <zmq.h>

int main() {
        void *context = zmq_ctx_new();
        void *responder = zmq_socket(context, ZMQ_REP);
        int rc = zmq_bind(responder, "tcp://*:5555");
        assert(rc == 0);
        while (1) {
                char buffer[10];
                zmq_recv(responder, buffer, 10, 0);
                printf("Received Hello\n");
                sleep(1);
                zmq_send(responder, "World", 5, 0);
        }  
        return 0;
}

// client.cpp
#include <zmq.h>
#include <string.h>
#include <stdio.h>
#include <unistd.h>
int main() {
        printf("Connecting to hello world server...\n");
        void *context = zmq_ctx_new();
        void *requester = zmq_socket(context, ZMQ_REQ);
        zmq_connect(requester, "tcp://localhost:5555");
        int request_nbr;
        for (request_nbr = 0; request_nbr != 10; request_nbr++) {
                char buffer[10];
                printf("Sending Hello %d...\n", request_nbr);
                zmq_send(requester, "Hello", 5, 0);
                zmq_recv(requester, buffer, 10, 0);
                printf("Receive World %d\n", request_nbr);
        }  
        zmq_close(requester);
        zmq_ctx_destroy(context);
        return 0;
}

对应编译:

g++ client.cpp -o client -lzmq

g++ server.cpp -o server -lzmq

然后执行./server和./client即可。

注意:带zmq.hpp版本的编译,参考如下链接:

https://blog.csdn.net/changqing5818/article/details/46916293

猜你喜欢

转载自blog.csdn.net/yzhang6_10/article/details/81484707