首先在ubuntu中安裝zmq庫
步驟如下:
2)解壓原始檔
tar zxf zeromq-4.0.3.tar.gz
3.1進入zmq目錄並進行編譯和安裝
cd zeromq-4.0.3
3.2執行配置檔案
sudo ./configure
3.3 進行編譯
make
3.4 安裝zmq
make install
4.1接收端**
//包含zmq的標頭檔案
#include #include "stdio.h"
int main(int argc, char * argv)
//建立zmq socket ,socket目前有6中屬性 ,這裡使用dealer方式
//具體使用方式請參考zmq官方文件(zmq手冊)
if((psock = zmq_socket(pctx, zmq_dealer)) == null)
int ircvtimeout = 5000;// millsecond
//設定zmq的接收超時時間為5秒
if(zmq_setsockopt(psock, zmq_rcvtimeo, &ircvtimeout, sizeof(ircvtimeout)) < 0)
//繫結位址 tcp://*:7766
//也就是使用tcp協議進行通訊,使用網路埠 7766
if(zmq_bind(psock, paddr) < 0)
printf("bind at : %s\n", paddr);
while(1)
;printf("waitting...\n");
errno = 0;
//迴圈等待接收到來的訊息,當超過5秒沒有接到訊息時,
//zmq_recv函式返回錯誤資訊 ,並使用zmq_strerror函式進行錯誤定位
if(zmq_recv(psock, szmsg, sizeof(szmsg), 0) < 0)
printf("received message : %s\n", szmsg);
}return 0;
}
4.2 傳送端**
//包含zmq的標頭檔案
#include #include "stdio.h"
int main(int argc, char * argv)
//建立socket
if((psock = zmq_socket(pctx, zmq_dealer)) == null)
int isndtimeout = 5000;// millsecond
//設定接收超時
if(zmq_setsockopt(psock, zmq_rcvtimeo, &isndtimeout, sizeof(isndtimeout)) < 0)
//連線目標ip192.168.1.2,埠7766
if(zmq_connect(psock, paddr) < 0)
//迴圈傳送訊息
while(1)
;snprintf(szmsg, sizeof(szmsg), "hello world : %3d", i++);
printf("enter to send...\n");
if(zmq_send(psock, szmsg, sizeof(szmsg), 0) < 0)
printf("send message : [%s] succeed\n", szmsg);
getchar();
}return 0;
}
5)在centos下編譯通過,記得要加zmq的鏈結庫 -lzmq
1 gcc -o recv recv.c -lzmq
2 gcc -o send send.c -lzmq
6)在機器192.168.1.2上執行recv程式,在同乙個區域網的另一台機器(同一臺機器也可以)上執行send程式 Fabric 批量安裝ZeroMQ
fabric是乙個用python開發的部署工具,最大特點是不用登入遠端伺服器,在本地執行遠端命令,幾行python指令碼就可以輕鬆部署。關於fabric的安裝可以直接參考官網的內容 fabric 官網 部署zeromq,本就是一件麻煩的事情,所以寫了乙個指令碼,用來實現多機統一部署 import s...
訊息佇列 ZeroMQ的安裝以及使用
1.前言 最近,一方面完成上司分配的工作任務,一方面在看zeromq這個東西,這個庫我最早接觸是在讀研期間,當時為了做一些有關分布式應用使用的一段時間,zeromq給我的感覺就是這個庫在搭建一些基於訊息的分布式架構很實用,它的最大的特點就是只需要使用幾個函式呼叫,就能夠實現乙個簡單的分布式系統,我當...
python版本的ZeroMQ安裝和幫助文件
1 已經安裝python,並且將其加入到環境變數中 安裝完成後,在windows環境變數系統變數path中增加 python.exe所在目錄 如 c python 其下scripts目錄 如 c python scripts 2 已經安裝了pip.exe,並且將其加入到環境變數中。pip insta...