文章出處

1、前言

  zeromq提供了guide,http://zguide.zeromq.org/,可以幫助新手快速上手,提供了C\C++\PHP等多種語言。

2、測試程序

使用zeromq給的hwserver和hwclient的C語言測試程序。

hwserver代碼如下:

 1 #include <stdio.h>                                                                                                                                                          
 2 #include <unistd.h>                                                                                    
 3 #include <string.h>                                                                                    
 4 #include <assert.h>                                                                                    
 5 #include <zmq.h>                                                                                     
 6                                                                                                        
 7 int main (void)                                                                                        
 8 {                                                                                                      
 9     //  Socket to talk to clients                                                                      
10     void *context = zmq_ctx_new ();                                                                    
11     void *responder = zmq_socket (context, ZMQ_REP);                                                   
12     int rc = zmq_bind (responder, "tcp://*:5555");                                                     
13     assert (rc == 0);                                                                                  
14                                                                                                        
15     while (1) {                                                                                        
16         char buffer [10];                                                                              
17         zmq_recv (responder, buffer, 10, 0);                                                           
18         printf ("Received Hello\n");                                                                   
19         sleep (1);          //  Do some 'work'                                                         
20         zmq_send (responder, "World", 5, 0);                                                           
21     }                                                                                                  
22     return 0;                                                                                          
23 }

hwclient代碼如下:

 1 //  Hello World client                                                                                                                                                      
 2 #include <zmq.h>                                                                                       
 3 #include <string.h>                                                                                    
 4 #include <stdio.h>                                                                                     
 5 #include <unistd.h>                                                                                    
 6                                                                                                        
 7 int main (void)                                                                                        
 8 {                                                                                                      
 9     printf ("Connecting to hello world server…\n");                                                   
10                                                                                                        
11     /*創建一個新的上下文*/                                                                             
12     void *context = zmq_ctx_new ();                                                                    
13     void *requester = zmq_socket (context, ZMQ_REQ);                                                   
14     /*通過tcp協議,5555端口,連接本機服務端*/                                                          
15     zmq_connect (requester, "tcp://localhost:5555");                                                   
16                                                                                                        
17     int request_nbr;                                                                                   
18     for (request_nbr = 0; request_nbr != 10; request_nbr++) {                                          
19         char buffer [10];                                                                              
20         printf ("Sending Hello %d…\n", request_nbr);                                                  
21         zmq_send (requester, "Hello", 5, 0);                                                           
22         zmq_recv (requester, buffer, 10, 0);                                                           
23         printf ("Received World %d\n", request_nbr);                                                   
24     }                                                                                                  
25                                                                                                        
26     zmq_close (requester);                                                                             
27     zmq_ctx_destroy (context);                                                                         
28                                                                                                        
29     return 0;                                                                                          
30 }                       

3、編譯執行

     我是將zeromq安裝在/usr/local/zeromq目錄下,Makefile中設置了include和lib的連接,編碼正常通過,但是在執行時候提示:

[root@localhost hwserver]# ./hwserver
./hwserver: error while loading shared libraries: libzmq.so.5: cannot open shared object file: No such file or directory

網上查了一下,發現是沒有將zeromq的lib路徑添加到 ld.so.conf 。

參考:http://blog.csdn.net/guoyilongedu/article/details/17450815

將libzeromq.so的路徑添加濤ld.so.conf中,操作步驟如下:

     進入到 etc 下  cd /etc

     編輯 ld.so.conf ,sudo vim ld.so.conf

     加入 libzmq.so 的路徑  /usr/local/zeromq/lib

     保存之后 再執行命令ldconfig

執行完成后,編譯成功:

啟動hwserver和hwclient,執行結果如下所示:


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()