C++的网络库一般都很重,这里基于zmq这个高性能的开源消息中间件用C++和python写了一个客户端/服务器互相异步通信的rpc组件
github:https://github.com/tashaxing/LittleRpc
其中:
little_rpc.h
和little_rpc.cpp
是C++实现的rpc库,可以include进自己的项目,注意链接zmq的库little_rpc.py
是python实现的rpc库(只有client部分),可以import进自己的项目,注意需要先安装zmq的包编译器需要支持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!