zeromq学习笔记2——简单的客户端和服务端测试程序-阿里云开发者社区

开发者社区> anker_rabbit> 正文

zeromq学习笔记2——简单的客户端和服务端测试程序

简介:
+关注继续查看

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,执行结果如下所示:

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
PostgreSQL 10.1 手册_部分 IV. 客户端接口_第 33 章 libpq - C 库_33.8. 异步提示
33.8. 异步提示 PostgreSQL通过LISTEN和NOTIFY命令提供了异步通知。一个客户端会话用LISTEN命令在一个特定的通知频道中注册它感兴趣的通知(也可以用UNLISTEN命令停止监听)。
933 0
[学习日记]对控件的继承和重载
今天在学习有关CLASS的继承后,有后领悟就写了一个CLASS来继承textbox,嘿嘿,成功了!当然还对其进行了重载,对输入的字符类型进行了限制,使其只能输入数字。继承类如下: Public Class NumericTextBoxClass NumericTextBox Inherits System.
587 0
《基于ECS搭建FTP服务》学习笔记
1.远程连接ECS服务器 2.安装vsftpd 3.配置vsftpd 4.客户端测试
428 0
SAS学习笔记之《SAS编程与数据挖掘商业案例》(3)变量操作、观测值操作、SAS数据集管理
SAS学习笔记之《SAS编程与数据挖掘商业案例》(3)变量操作、观测值操作、SAS数据集管理 1. SAS变量操作的常用语句 ASSIGNMENT 创建或修改变量 SUM 累加变量或表达式 KEEP 规定在数据集中保留的变量 DROP 规定在数据集中删除的变量 ARRAY 定义一个数组 RENAME
1389 0
PostgreSQL 10.1 手册_部分 IV. 客户端接口_第 33 章 libpq - C 库_33.9. COPY命令相关的函数
33.9. COPY命令相关的函数 33.9.1. 用于发送COPY数据的函数 33.9.2. 用于接收COPY数据的函数 33.9.3. 用于COPY的废弃函数 PostgreSQL中的COPY命令有用于libpq的对网络连接读出或者写入的选项。
1086 0
+关注
103
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载