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     (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 小于等于版本。

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 (1);
// Socket to talk to clients
void *responder = zmq_socket (context, ZMQ_REP);
zmq_bind (responder, "tcp://127.0.0.1:5566");
printf("binding on port 5566.\nwaiting client send message...\n");
while (1) {
// Wait for next request from client
zmq_msg_t request;
zmq_msg_init (&request);
char buf[32];
zmq_recv (responder,buf, &request, 0);
int size = zmq_msg_size (&request);
char *string = malloc (size + 1);
memset(string,0,size+1);
memcpy (string, zmq_msg_data (&request), size);
printf ("Received Hello string=[%s]\n",string);
free(string);
zmq_msg_close (&request);
// Do some ‘work‘
sleep (1);
// Send reply back to client
zmq_msg_t reply;
char res[128]={0};
snprintf(res,127,"reply:%d",random());
zmq_msg_init_size (&reply, strlen(res));
memcpy (zmq_msg_data (&reply), res, strlen(res));
char buf2[32];
zmq_send (responder, buf2, &reply, 0);
zmq_msg_close (&reply);
}
// We never get here but if we did, this would be how we end
zmq_close (responder);
zmq_term (context);
return 0;
}

client.c

#include <zmq.h>
#include <string.h>
#include <stdio.h>
#include <unistd.h>
int main ()
{
void *context = zmq_init (1); // Socket to talk to server
printf ("Connecting to hello world server...\n");
void *requester = zmq_socket (context, ZMQ_REQ);
zmq_connect (requester, "tcp://127.0.0.1:5566");
int request_nbr;
for (request_nbr = 0; request_nbr != 10; request_nbr++)
{
zmq_msg_t request;
zmq_msg_init_data (&request, "Hello", 6, NULL, NULL);
printf ("Sending request %d...\n", request_nbr);
zmq_send (requester, &request, 0,0);
printf("send over") ;
zmq_msg_close (&request);
zmq_msg_t reply;
zmq_msg_init (&reply);
zmq_recv (requester, &reply, 0,0);
printf ("Received reply %d: [%s]\n", request_nbr, (char *) zmq_msg_data (&reply));
zmq_msg_close (&reply);
}
zmq_close (requester);
zmq_term (context);
return 0;
}

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

时间: 2024-11-04 12:26:54

linux zeromq的相关文章

linux 下 php 安装 ZeroMQ 扩展

一.下载安装源码包 ZeroMQ源码包下载地址: http://zeromq.org/area:download 如:zeromq-4.1.4.tar.gz php的zmq扩展源码包 https://pecl.php.net/package/zmq 或如下地址: https://github.com/mkoppanen/php-zmq 如:zmq-1.1.3.tgz 二.安装目录 ZeroMQ安装目录 /data/zeromq php安装目录 /data/nmp/php 三.安装ZeroMQ >

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

今天为Hadoop配置zeromq.jzmq遇到各种问题,先是编译出错,到编译成功后测试出错等等,下面将我遇到的问题与大家分享一下. 第一个注意点是:必须先编译安装zeromq,然后在编译jzmq,否则会报zmq.h文件找不到. 官方安装配置链接:http://zeromq.org/bindings:java Step 1:安装必须的依赖包: [[email protected] ~]$ sudo yum install autoconf automake libtool gcc gcc-g++

ZeroMQ接口函数之 :zmq_pgm – &#216;MQ 使用PGM 进行可靠的多路传输

ZeroMQ API 目录 :http://www.cnblogs.com/fengbohello/p/4230135.html ————————————————————————————————————— ZeroMQ 官方地址:http://api.zeromq.org/4-0:zmq-pgm zmq_pgm(7)         ØMQ Manual - ØMQ/3.2.5 Name zmq_pgm – ØMQ 使用PGM 进行可靠的多路传输 Synopsis PGM(实际通用多路广播)是一

在Linux docker上安装STF

需要解决问题:调研openstf/stf(https://github.com/openstf/stf),搭建docker(https://www.docker.com/)环境. 拆解为: docker基本使用 stf 如何安装 逐个来看: 1. docker基本使用 理解总体框架 理解基本概念:使用中,个人理解主要分清镜像和容器两个的概念.(docker:从入门到实践) 基本命令(详细参见docker doc) docker images //查看本地镜像 docker ps -a //查看本

(转)zeromq 安装

http://youzifei.iteye.com/blog/1698237 zeromq 今天在安装zeromq的时候费了好大的力气才算装好 下面来回顾一下在linux安装zeromq的过程 首先 http://download.zeromq.org/ 1.下载最新版的zeromq http://download.zeromq.org/zeromq-3.1.0-beta.tar.gz 2 解压 tar -xvf zeromq-3.1.0-beta.tar.gz 3 运行configure ./

rabbitmq, windows/linux, c/c++/node.js/golang/dotnet

官网:http://www.rabbitmq.com/ zeromq 相当于 message backbone,而rabbitmq相当于message broker.有的应用系统中,二者并存. (1)windows安装 windows下载:rabbitmq-server-3.6.6.exe,需要先安装erlang 然后: cd C:\Program Files\RabbitMQ Server\rabbitmq_server-3.6.6\sbin rabbitmq-plugins.bat    e

linux c++知识

著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:Lippi OuYang链接:http://www.zhihu.com/question/20124494/answer/29689762来源:知乎 Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力.Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行.下

zeromq学习笔记1——centos下安装 zeromq-4.1.2

1.前言 MQ(message queue)是消息队列的简称,可在多个线程.内核和主机盒之间弹性伸缩.ZMQ的明确目标是“成为标准网络协议栈的一部分,之后进入Linux内核”.现在还未看到它们的成功.但是,它无疑是极具前景的.并且是人们更加需要的“传统”BSD套接字之上的一 层封装.ZMQ让编写高性能网络应用程序极为简单和有趣. 2.安装过程 (1)下载最新的ZeroMQ:http://download.zeromq.org/ (2)解压:tar -xvf zeromq-4.1.2.tar.gz

Linux多线程服务端编程:使用muduo C++网络库

内容推荐本 书主要讲述采用现代C++在x86-64 Linux上编写多线程TCP网络服务程序的主流常规技术,重点讲解一种适应性较强的多线程服务器的编程模型,即one loop per thread.这是在Linux下以native语言编写用户态高性能网络程序最成熟的模式,掌握之后可顺利地开发各类常见的服务端网络应用程序.本书以 muduo网络库为例,讲解这种编程模型的使用方法及注意事项.本书的宗旨是贵精不贵多.掌握两种基本的同步原语就可以满足各种多线程同步的功能需求,还能写出更易用的同步设施.掌