zoukankan      html  css  js  c++  java
  • zeromq学习笔记2——简单的客户端和服务端测试程序

    1、前言

      zeromq提供了guide,http://zguide.zeromq.org/,可以帮助新手快速上手,提供了CC++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
    ");                                                                   
    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…
    ");                                                   
    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…
    ", request_nbr);                                                  
    21         zmq_send (requester, "Hello", 5, 0);                                                           
    22         zmq_recv (requester, buffer, 10, 0);                                                           
    23         printf ("Received World %d
    ", 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,执行结果如下所示:

  • 相关阅读:
    Linux_服务器_09_新虚拟机下linux网络配置
    计算机_软件技巧_01_优雅地再word中插入代码
    Tomcat_总结_01_tomcat环境搭建
    gradle_学习_01_gradle安装与基本使用
    Git_学习_01_ git 安装与配置
    redis_学习_02_redis 可视化工具 Redis Desktop Manager
    redis_学习_01_redis的安装
    Idea_学习_08_常用快捷键
    Git_学习_07_ 推送修改到远端
    20180403_调bug_大地保险_jar包冲突
  • 原文地址:https://www.cnblogs.com/Anker/p/4706244.html
Copyright © 2011-2022 走看看