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,執行結果如下所示:
文章列表