日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ZerMQ安装与使用

發布時間:2023/12/20 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ZerMQ安装与使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

windows下 使用vs2010的,v4.0.4的版本官方 0mq api 好像還沒加上去,我是參照老版本(v3.1)的用法來的。

使用前你要對windows下動態庫的使用有個基本了解。我的上一篇博客有講,但有點亂,有時間再改一改。

這里我是用了動態庫的隱式連接,需要動態庫的 動態庫文件".dll" , 動態庫的LIB文件".lib" , 動態庫的函數引入聲明 "zmq.h" 和 "zmq_utils.h" 中有了(實現方式應該是我上篇博客末尾中的 "預編譯開關切換類的導入導出定義");

本篇要試的是請求--回應模式:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

?

使用步驟:

  1.Zmq動態庫的獲取:

  首先先下載 Zeromq 下來:http://zeromq.org/area:download,點擊”Windows installers",下完安裝。

  

?

  安裝完成后,在安裝目錄 ??C:\Program Files\ZeroMQ 4.0.4 下面,你能找到剛剛的4個文件:

     ZeroMQ 4.0.4 \bin 中的 ?“libzmq-v100-mt-gd-4_0_4.dll”,

     ZeroMQ 4.0.4 \lib ?中的 "libzmq-v100-mt-gd-4_0_4.lib",

     ZeroMQ 4.0.4 \include ?中的"zmq.h" 和 "zmq_utils.h"

  復制到你 新建要用的 項目工作目錄當中。

    這是服務端的,客戶端也一樣;

如果你的編譯器不是vs2010,需要什么版本請參考:http://zeromq.org/distro:microsoft-windows

?

  至于Debug版在是帶調試信息的,Release版文件則小很多,兩個都可以用,你個人喜歡。  

  2.Zmq動態庫的使用:

     1.創建server端,win32控制臺 ,空項目,把 動態庫文件復制進來。代碼如下:

//2014-4-2 programed by sixbeauty //zeromp 通訊測試server 端 #include "zmq.h" #include "zmq_utils.h" //Zeromq 函數的導入在這里幫我們實現了 #include <iostream> #pragma comment(lib,"libzmq-v100-mt-gd-4_0_4.lib") int main() {std::cout << "-------------------Zeromq REP style-----------------------" <<std::endl;std::cout << "---------------------Author:SanYue------------------------" <<std::endl;void* context=zmq_init(1); //指定zmq 處理I/0事件的thread pool 為1void* z_socket=zmq_socket(context,ZMQ_REP);zmq_bind(z_socket,"tcp://*:5555"); // accept connections on a socketint recvn=1;while(1) //循環工作{ //接受部分zmq_msg_t recv_msg;zmq_msg_init(&recv_msg);zmq_msg_recv(&recv_msg,z_socket,0); //0表示非阻塞std::cout<<"第\t"<<recvn++<<"\t次收到client信息:\t";std::cout<<(char*)zmq_msg_data(&recv_msg)<<std::endl;zmq_msg_close(&recv_msg);//發送部分zmq_msg_t send_msg;zmq_msg_init_size(&send_msg,6);memcpy(zmq_msg_data(&send_msg),"world",6);zmq_sendmsg(z_socket,&send_msg,0);zmq_msg_close(&send_msg);}zmq_close(z_socket);zmq_term(context);return 0; }

?

     2.client端,一樣是 win32控制臺 空項目,把 動態庫文件復制進來。代碼如下:

//2014-4-2 programed by sixbeauty //zeromp 通訊測試client 端 #include "zmq.h" #include "zmq_utils.h" //Zeromq 函數的導入在這里幫我們實現了 #include <iostream> #pragma comment(lib,"libzmq-v100-mt-gd-4_0_4.lib") int main() {std::cout << "-------------------Zeromq REB style-----------------------" <<std::endl;std::cout << "---------------------Author:SanYue------------------------" <<std::endl;void* context=zmq_init(1); //指定zmq 處理I/0事件的thread pool 為1void* z_socket=zmq_socket(context,ZMQ_REQ);zmq_connect(z_socket,"tcp://localhost:5555"); // accept connections on a socketfor(int i=0;i<9;i++) //循環工作{system("pause"); //暫停//發送部分zmq_msg_t send_msg;zmq_msg_init_size(&send_msg,6);memcpy(zmq_msg_data(&send_msg),"hello",6);zmq_msg_send(&send_msg,z_socket,0);zmq_msg_close(&send_msg);//接受部分zmq_msg_t recv_msg;zmq_msg_init(&recv_msg);zmq_msg_recv(&recv_msg,z_socket,0); //0表示非阻塞printf("收到Server端回答:\t");std::cout<<(char*)zmq_msg_data(&recv_msg)<<std::endl;zmq_msg_close(&recv_msg);}zmq_close(z_socket);zmq_term(context);return 0; }

總結

以上是生活随笔為你收集整理的ZerMQ安装与使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。