博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
zeromq学习笔记2——简单的客户端和服务端测试程序
阅读量:5742 次
发布时间:2019-06-18

本文共 6240 字,大约阅读时间需要 20 分钟。

1、前言

  zeromq提供了guide,,可以帮助新手快速上手,提供了C\C++\PHP等多种语言。

2、测试程序

使用zeromq给的hwserver和hwclient的C语言测试程序。

hwserver代码如下:

1 #include 
2 #include
3 #include
4 #include
5 #include
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 
3 #include
4 #include
5 #include
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 。

参考:

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

转载地址:http://svszx.baihongyu.com/

你可能感兴趣的文章
一些 ssh 小技巧
查看>>
Android解析WindowManager(一)WindowManager体系
查看>>
iOS 10 SceneKit 新特性 - SceneKit 制作3D 场景框架
查看>>
iOS成长之路3期·WWDC17内参开卖
查看>>
简述go函数的传值与传指针
查看>>
MySQL之存储引擎InnoDB和MyISAM的区别及底层详解
查看>>
egg商城--商品管理篇
查看>>
CDN讲解
查看>>
[译] Kotlin 揭秘:理解并速记 Lambda 语法
查看>>
Weex 第二天: JS Service
查看>>
Blocks的实现
查看>>
HTML5拍照、摄像机功能实战
查看>>
HBuilder 第三方插件开发
查看>>
Golang 中使用 JSON 的小技巧
查看>>
Android Handler机制之ThreadLocal
查看>>
[译]使用 Rust 开发一个简单的 Web 应用,第 1 部分
查看>>
求二叉树叶子结点的个数
查看>>
SnapHelper源码深度解析
查看>>
Vue一个案例引发「动画」的使用总结
查看>>
JDK11的ZGC小试牛刀
查看>>