linux zeromq
本人在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的更多相关文章
- Linux 驱动开发
linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...
- ZeroMQ实例-使用ZeroMQ进行windows与linux之间的通信
1.本文包括 1)在windows下使用ZMQ 2)在windows环境下与Linux环境下进行网络通信 2.在Linux下使用ZMQ 之前写过一篇如何在Linux环境下使用ZMQ的文章 <Ze ...
- Linux(CentOS)安装配置zeromq、jzmq(解决各种问题)
今天为Hadoop配置zeromq.jzmq遇到各种问题,先是编译出错,到编译成功后测试出错等等,下面将我遇到的问题与大家分享一下. 第一个注意点是:必须先编译安装zeromq,然后在编译jzmq,否 ...
- Linux下zeromq.js安装
本文章主要阐述在离线环境下安装zeromq.js的方法和步骤.zeromq.js下载地址: https://www.npmjs.com/package/zeromq或者 https://github. ...
- 【Linux】ZeroMQ 在 centos下的安装
转自:http://www.cnblogs.com/mjorcen/p/4479642.html 一.ZeroMQ介绍 ZeroMQ是一个开源的消息队列系统,按照官方的定义,它是一个消息通信库,帮助开 ...
- linux 下 php 安装 ZeroMQ 扩展
一.下载安装源码包 ZeroMQ源码包下载地址: http://zeromq.org/area:download 如:zeromq-4.1.4.tar.gz php的zmq扩展源码包 https: ...
- 以ZeroMQ谈消息中间件的设计【译文】
本文主要是探究学习比较流行的一款消息层是如何设计与实现的 ØMQ是一种消息传递系统,或者乐意的话可以称它为"面向消息的中间件".它在金融服务,游戏开发,嵌入式系统,学术研究和航空航 ...
- 消息队列之ZeroMQ(C++)
ZMQ是什么? 这是个类似于Socket的一系列接口,他跟Socket的区别是:普通 的socket是端到端的(1:1的关系),而ZMQ却是可以N:M 的关系,人们对BSD套接字的了解较多的是点对点的 ...
- 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 ...
随机推荐
- Android Studio新手
目标:Android Studio新手–>下载安装配置–>零基础入门–>基本使用–>调试技能–>构建项目基础–>使用AS应对常规应用开发 AS简介 经过2年时间的研 ...
- Ansible Lookup
1. 文件内容的读取 --- - hosts: all vars: contents: "{{ lookup('file', '/etc/foo.txt') }}" tasks: ...
- OGC 的WCS WFS 及WMS 服务
OGC--Open Geospatial Consortium--开放地理信息联盟,是一个非盈利的志愿的国际标准化组织,引领着空间地理信息标准及定位基本服务的发展目前在空间数据互操作领域,基于公共接口 ...
- hibernate java.sql.SQLException
异常:java.sql.SQLException oracle.net.ns.NetException java.net.ConnectException 提示:The Network Adapter ...
- mybatis配置sql超时时间
mybatis如果不配置,默认超时时间是不做限制的.当系统慢sql很多时,势必会增加数据库压力,系统性能及稳定性降低.所以有必要要设置sql超时设置,下面配置超时时间是5分钟. 第一步:全局配置如下 ...
- Jmeter:相应断言介绍
Jmeter进行性能测试时,作为对上一个请求返回信息的校验,基本上断言是不可少的,今天主要介绍一下Jmeter的相应断言校验. 相应断言:即对服务器相应信息的校验判断,发送http请求后,对服务器返回 ...
- NPY and girls
NPY and girls 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5145 莫队算法 注意到没有修改区间的操作,使用莫队算法:将整个区间分成若干 ...
- git切换分支
今天同事问我她的报错了,我看了一下,是分支没有指向远程仓库对应的分支;报错如下; $ git pull There is no tracking information for the current ...
- mysql 批量修改表前缀
直接贴码: SELECT a.*, concat( 'alter table ', a.TABLE_NAME, ' rename ge_', SUBSTR( a.TABLE_NAME FROM INS ...
- dplyr 数据操作 数据过滤 (filter)
在R的使用过程中我们几乎都绕不开Hadley Wickham 开发的几个包,前面说过的ggplot2.reshape2以及即将要讲的dplyr 因为这几个包可以非常轻易的使我们从复杂的数据操作中逃离, ...