rpclib
https://github.com/carla-simulator/rpclib c 中的rpc,支持端口重用,数据使用msgpack二进制串行化数据,使用简单,操作如下 服务端
代码语言:javascript复制rpc::server srv(8080);
// Binding a lambda function to the name "add".
srv.bind("add", [](int a, int b) {
return a b;
});
// Run the server loop.
srv.run();
客户端
代码语言:javascript复制rpc::client client("127.0.0.1", 8080); //支持端口重用,本机使用127.0.0.1不要使用0.0.0.0否则端口重用,数据会被127.0.0.1接收
// Calling a function with paramters and converting the result to int
auto result = client.call("add", 2, 3).as<int>();
不好的地方:单工通信,不支持其他语言,不过代码开源,可以自己加。
开源的rpc功能强大的可以使用百度的brpc https://gitee.com/mirrors/sofa-pbrpc.git 和腾讯的trpc https://github.com/trpc/trpc.git 有开源代码支持,或者ice https://gitee.com/zhongshanlee/zeroc-ice.git