一个小巧的rpc通信组件(C++和python)

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u012234115/article/details/90674652

C++的网络库一般都很重,这里基于zmq这个高性能的开源消息中间件用C++和python写了一个客户端/服务器互相异步通信的rpc组件

代码

github:https://github.com/tashaxing/LittleRpc

其中:

  • 用的是zmq的router和dealer异步模式
  • 支持请求/应答和推送
  • src/cpp目录的little_rpc.hlittle_rpc.cpp是C++实现的rpc库,可以include进自己的项目,注意链接zmq的库
  • src/cpp目录的little_rpc.py是python实现的rpc库(只有client部分),可以import进自己的项目,注意需要先安装zmq的包
  • example目录包含C++和python的使用示例

编译

编译器需要支持C++11
直接用cmake编译(windows和linux双平台),可以运行C++和python的demo

使用

启动一个server和两个client(分别是C++版和python版)
相互通信运行结果如下

server

rpc server is listening on tcp://*:5000
receive rpc request, conn_id: cpp_client_1559123432513433500 req_data: request for lucky day
receive rpc request, conn_id: py_client_1559123437.01 req_data: request for happy life
publish to all clients

C++ client

connect to tcp://127.0.0.1:5000
send to server
on_msg_result: response to cpp_client_1559123432513433500 content: request for lucky day
on_msg_result: welcome to rpc server!

python client

connect to tcp://127.0.0.1:5000
send to server
on_msg_result: response to py_client_1559123437.01 content: request for happy life
on_msg_result: welcome to rpc server!
展开阅读全文

没有更多推荐了,返回首页