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 ...
随机推荐
- 【转】Zookeeper-Watcher机制与异步调用原理
声明:本文转载自http://shift-alt-ctrl.iteye.com/blog/1847320,转载请务必声明. Watcher机制:目的是为ZK客户端操作提供一种类似于异步获得数据的操作. ...
- win8.1和centos6.5 双系统启动问题
笔记本系统为centos 6.5,由grub引导启动,安装了win 8.1后,开机直接进入win 8.1,没有出现centos6.5 引导项,解决办法: 一.开机按ESC键进入启动顺序菜单,选择cen ...
- 关于PC端与手机端随着手指移动图片位置放生变化的拖拽事件
当按下鼠标时,图片随鼠标移动松开时图片回到原位 drag("div_id") function drag(node_id){ var node = document.getElem ...
- Sql Server尝试读取或写入受保护的内存。这通常指示其他内存已损坏
今日遇到这样一个问题,用vs2010调试C#代码时,只要代码一运行到跟数据库关联的地方时,编译器就报错误,给的提示如:调试器已附加,要继续需要分离什么的,咋一看还以为是vs中调试器设置的问题,可后来仔 ...
- C3P0连接池参数详解
<c3p0-config> <default-config> <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数.Default: 3 --> < ...
- zTree 勾选checkbox
zTree 勾选checkbox var setting = { check: { enable: true// chkboxType : { "Y&quo ...
- Django开发环境配置
Eclipse 首先需要去Eclipse官网下载:http://www.eclipse.org/,Eclipse需要JDK支持,如果Eclipse无法正常运行,请到Java官网下载JDK安装:ht ...
- box2d 计算自由落体下一帧的位置
var dt:Number=1/30; var y0:Number=_body.GetPosition().y; var y:Number=y0+_body.GetLinearVelocity().y ...
- AIDL机制实现进程间的通讯实例
转载自:http://blog.csdn.net/cjjky/article/details/7562652 ======================================= 在Andr ...
- C#之委托(函数参数传递)【转】
原文:http://blog.csdn.net/wangdan199112/article/details/18796527 在学委托这块儿的时候,函数参数这块不是很理解,于是针对一个例子做了深入的理 ...