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 ...
随机推荐
- Python学习笔记——基础篇【第六周】——PyYAML & configparser模块
PyYAML模块 Python也可以很容易的处理ymal文档格式,只不过需要安装一个模块,参考文档:http://pyyaml.org/wiki/PyYAMLDocumentation 常用模块之Co ...
- SpringMVC一路总结(一)(转)
itRed You are never too old to set another goal or to dream a new dream. SpringMVC一路总结(一) SpringMVC听 ...
- Chapter 21_1 字符串函数
接下来开始接触Lua强大的字符串处理能功能——字符串库. 原始的Lua解释器操作字符串的能力很有限,真正强大的能力还是来自字符串库. 它所有的函数都在模块string中.它还为strings设置了一个 ...
- 我的JAvA第三天
- easyDialog弹窗+zTree部门选择
写一个父页面方法,将name和id赋值 function show(name,id) { $("#deptnoID").val(name); $("#deptnoId&q ...
- jmeter下载及安装配置
本文是在win7环境下安装使用jmeter,jmeter可以运行在多平台上Windows和Linux. 前提:使用jmeter工具之前需要安装java.并配置好java的环境变量.(备注:java下载 ...
- javascript语言学习笔记。
js类创建方法 var DogKing = function(dogName){ this.dogName = dogName; }; var myDogKing = new DogKing(&quo ...
- QT枚举类型与字符串类型相互转换
在QT中将枚举类型注册(QT_Q_ENUM或QT_Q_FLAG)后,就可以利用QT的元对象进行枚举类型与字符串类型转换了. 代码示例: #include <QtCore/QMetaEnum> ...
- Gdiplus 贴图(助记) -------------------从资源中载入PNG图片
从资源中载入图片,亦可改为从内从中加载: void LoadResImage(int nResID,Image * &lpImage) { HINSTANCE hIns=AfxGetInsta ...
- Maven+STS工程中Maven Dependencies 文件夹丢失问题
在我们使用Maven+sts工程中偶尔会出现这种情况: Maven Dependencies文件夹在新打开的工程中丢失,造成 web project 自动编译出错,缺少必要的库文件: 如下图所示的情况 ...