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 ...
随机推荐
- mac 搭建node 开发环境记录
安装homebrew: enter 键 后 输入电脑密码 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/i ...
- git 客户端提交
01 按照git到本地 02 按照小乌龟操作面板, 03 (git 和小乌龟)自动加载到右键快捷方式
- video标签MP4兼容chrome问题
video标签的用法如下 <video width="320" height="240" controls> <source src=&quo ...
- Edward's Cola Plan
Edward's Cola Plan Time Limit:3000MS Memory Limit:32768KB 64bit IO Format:%lld & %llu S ...
- IIS7添加mp4 MINE类型报错:无法写入配置文件
解决方法: 方法一: 可能是由于文件为只读属性,所以修改网站文件访问权限,把此文件夹或者文件的写入权限给了这个用户. 方法二: 可能由于网站目录所在的分区是fat32格式,所以要把网站目录放在NTFS ...
- Linux中的shell函数编写
function huge_cp() { while read line1; do cp $line1 ../; done; } function huge_rm() { while read lin ...
- 初识Spark(Spark系列)
1.Spark Spark是继Hadoop之后,另外一种开源的高效大数据处理引擎,目前已提交为apach顶级项目. 效率: 据官方网站介绍,Spark是Hadoop运行效率的10-100倍(随内存计算 ...
- Spring-MVC填坑之旅-返回json数据
本文是自己开发中所遇到的问题,对一些及百度到的解决方案做一个记录. DispatcherServlet配置文件 <!-- 定义跳转的文件的前后缀 ,视图模式配置--> <bean i ...
- supervisor笔记
supervisord 作为主进程,管理旗下的各个子进程,子进程会产生若干线程.当某个管理的服务异常奔溃之后,supervisor 会自动重启该服务.配合使用 superlance 插件以实现 Htt ...
- 《JavaScript高级程序设计》读书笔记 ---Array 类型
除了Object 之外,Array 类型恐怕是ECMAScript 中最常用的类型了.而且,ECMAScript 中的数组与其他多数语言中的数组有着相当大的区别.虽然ECMAScript 数组与其他语 ...