本人在centos下安装zeromq

1.下载最新版的zeromq

http://download.zeromq.org/

2 解压

tar -xvf zeromq-3.1.0-beta.tar.gz

3 运行configure

./configure --prefix=/data/zeromq  PKG_CONFIG_PATH="/data/sodium/lib/pkgconfig/"    (prefix  指定安装目录)

 出现问题:

configure: error: Package requirements (libsodium >= 0.0.0) were not met

参考:
http://www.cnblogs.com/jim-hwg/p/4952349.html

 这里最好使用

libsodium-1.0.3 小于等于版本。
cd /home/shengkaishan/software/libsodium-1.0.3
./configure --prefix=/data/sodium
make
make install

4. make

5. make install

c代码

server.c

#include <zmq.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
int main (void)
{
void *context = zmq_init ();
void *responder = zmq_socket (context, ZMQ_REP);
zmq_bind(responder, "tcp://127.0.0.1:5566"); while ()
{
// Wait for next request from client
zmq_msg_t request;
zmq_msg_init(&request);
zmq_recvmsg(responder, &request, );
//printf("Received client msg = [%s]\n", (char *)zmq_msg_data(&request));
#if 1
int size = zmq_msg_size(&request);
char *msg = (char *)malloc(size + );
memset(msg, , size+);
memcpy(msg, zmq_msg_data(&request), size);
printf ("Received Client=[%s]\n", msg);
free(msg);
#endif
zmq_msg_close(&request); // Do some 'work'
sleep (); // Send reply back to client
zmq_msg_t reply;
zmq_msg_init_data(&reply, "world", , NULL, NULL);
zmq_sendmsg(responder, &reply, );
zmq_msg_close(&reply);
#if 0
zmq_msg_t reply;
char res[]={};
snprintf(res, , "reply:%d", random());
zmq_msg_init_size(&reply, strlen(res));
memcpy(zmq_msg_data(&reply), res, strlen(res));
char buf2[];
zmq_send(responder, buf2, &reply, );
zmq_msg_close(&reply);
#endif
}
// We never get here but if we did, this would be how we end
zmq_close(responder);
zmq_term(context);
return ;
}

client.c

#include <zmq.h>
#include <string.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int main ()
{
void *context = zmq_init();
void *requester = zmq_socket(context, ZMQ_REQ);
zmq_connect (requester, "tcp://127.0.0.1:5566");
int request_nbr; for (request_nbr = ; request_nbr != ; request_nbr++)
{
zmq_msg_t request; zmq_msg_init_size(&request, );
//memset(zmq_msg_data(&request), 'H', 5);
//memcpy(zmq_msg_data(&request), "Hello", 5); zmq_msg_init_data(&request, "Hello", , NULL, NULL);
zmq_sendmsg(requester, &request, );
zmq_msg_close(&request); zmq_msg_t reply;
zmq_msg_init(&reply);
//zmq_recv(requester, &reply, 0,0);
zmq_recvmsg(requester, &reply, );
//printf ("Received reply %d: [%s]\n", request_nbr, (char *)zmq_msg_data(&reply));
#if 1
int size = zmq_msg_size(&reply);
char *msg = (char *)malloc(size + );
memset(msg, , size+);
memcpy(msg, zmq_msg_data(&reply), size);
printf ("Received Server=[%s]\n", msg);
free(msg);
#endif
zmq_msg_close(&reply);
}
zmq_close(requester);
zmq_term(context); return ;
}

export LD_LIBRARY_PATH=/data/zeromq/lib/:$LD_LIBRARY_PATH

gcc server.c -o server -lzmq   -L/data/zeromq/lib -I/data/zeromq/include

gcc client.c -o client -lzmq   -L/data/zeromq/lib -I/data/zeromq/include

linux zeromq的更多相关文章

  1. Linux 驱动开发

    linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...

  2. ZeroMQ实例-使用ZeroMQ进行windows与linux之间的通信

    1.本文包括 1)在windows下使用ZMQ 2)在windows环境下与Linux环境下进行网络通信 2.在Linux下使用ZMQ 之前写过一篇如何在Linux环境下使用ZMQ的文章 <Ze ...

  3. Linux(CentOS)安装配置zeromq、jzmq(解决各种问题)

    今天为Hadoop配置zeromq.jzmq遇到各种问题,先是编译出错,到编译成功后测试出错等等,下面将我遇到的问题与大家分享一下. 第一个注意点是:必须先编译安装zeromq,然后在编译jzmq,否 ...

  4. Linux下zeromq.js安装

    本文章主要阐述在离线环境下安装zeromq.js的方法和步骤.zeromq.js下载地址: https://www.npmjs.com/package/zeromq或者 https://github. ...

  5. 【Linux】ZeroMQ 在 centos下的安装

    转自:http://www.cnblogs.com/mjorcen/p/4479642.html 一.ZeroMQ介绍 ZeroMQ是一个开源的消息队列系统,按照官方的定义,它是一个消息通信库,帮助开 ...

  6. linux 下 php 安装 ZeroMQ 扩展

    一.下载安装源码包 ZeroMQ源码包下载地址: http://zeromq.org/area:download 如:zeromq-4.1.4.tar.gz   php的zmq扩展源码包 https: ...

  7. 以ZeroMQ谈消息中间件的设计【译文】

    本文主要是探究学习比较流行的一款消息层是如何设计与实现的 ØMQ是一种消息传递系统,或者乐意的话可以称它为"面向消息的中间件".它在金融服务,游戏开发,嵌入式系统,学术研究和航空航 ...

  8. 消息队列之ZeroMQ(C++)

    ZMQ是什么? 这是个类似于Socket的一系列接口,他跟Socket的区别是:普通 的socket是端到端的(1:1的关系),而ZMQ却是可以N:M 的关系,人们对BSD套接字的了解较多的是点对点的 ...

  9. ZeroMQ接口函数之 :zmq_tcp – 使用TCP协议的ØMQ网络单播协议

    ZeroMQ 官方地址 :http://api.zeromq.org/4-1:zmq-tcp zmq_tcp(7)          ØMQ Manual - ØMQ/4.1.0 Name zmq_t ...

随机推荐

  1. postman+jenkins+newman做接口测试的持续集成

    为何要做接口自动化测试的持续集成? 1. 接口相对稳定,改动少,比起GUI自动化测试来说性价比更加高些,不容易出现GUI自动化那种掉到维护脚本的坑里. 2. 接口测试比较简单,一个规范的接口,测试只需 ...

  2. 非root用户搭建hadoop伪分布式

    0.安装软件列表 jdk-7u25-linux-x64.tar.gz hadoop-2.5.0.tar.gz hadoop-native-64-2.5.0.tar   1.准备Linux环境(root ...

  3. NSCondition用法

    NSCondition用法 使用NSCondition,实现多线程同步...举个列子 消费者跟生产者... 现在传言6s要出了.. 消费者想买6s.现在还没有6s.消费者等待6s生产. 生产了一个产品 ...

  4. [转] Android root 原理

    欢迎转载,转载请注明出处:http://www.cnblogs.com/lanrenxinxin/p/5572640.html 0x00 关于root linux和类Unix系统的最初设计都是针对多用 ...

  5. redo log

    1.redo log相关数据字典 v$log:display the redo log file information from the control file v$logfile:identif ...

  6. 打开新世界的第一步:学习servlet

    什么是servlet? 是用Java编写的服务器端程序.其主要功能在于交互式地浏览和修改数据,生成动态Web内容. 创建servlet 一.创建一个web project 1)流程:eclipse-F ...

  7. windows 7 & protobuf 3.0 & python 3.5

    置顶: 在Python中使用protocol buffers参考指南 http://blog.csdn.net/losophy/article/details/17006573 其实看这篇文章就可以把 ...

  8. White space is required before the encoding pseudo attribute in the XML declaration.

    错误出现的位置: <?xml version="1.0"encoding="UTF-8"?> 正确方式: <?xml version=&quo ...

  9. bootstrip 折叠菜单

    body { font-family: "宋体"; font-size: 12px } .menu { height: 30px; background: #e6e6e6; mar ...

  10. 九章lintcode作业题

    1 - 从strStr谈面试技巧与代码风格 必做题: 13.字符串查找 要求:如题 思路:(自写AC)双重循环,内循环读完则成功 还可以用Rabin,KMP算法等 public int strStr( ...