grpc使用不同语言对接

安装C++版本的GRPC

我服务器是python,客户端是C(面向过程,要把c++的对象重新封装成C,很绝望)我主要学的是python,安装grpc很简单就不说了(安装会有python2—3过度的语法错误,直接下载源文件,进去把2的语法改成三,然后执行pip3 install -e 文件夹名字 就可以了)

 1、$ git clone -b $(curl -L https://grpc.io/release) https://github.com/grpc/grpc
 2、$ cd grpc
 3、$ git submodule update --init
 4、[sudo] apt-get install build-essential autoconf libtool pkg-config
 ( $ [sudo] apt-get install libgflags-dev libgtest-dev
 $ [sudo] apt-get install clang-5.0 libc++-dev)
 5、make、make install(grpc文件夹下,不行就加sudo,我是新手直接在root下运行的,而且我的任务也刚好是基于C的,要求在root下运行。)
 ($ git clean -f -d -x && git submodule foreach --recursive git clean -f -d -x
$ [sudo] apt-get install build-essential autoconf libtool pkg-config
$ make)
6、若未安装($ cd grpc/third_party/protobuf
$ sudo make install)( 'make'应该已经由核心grpc运行)
7、sudo apt-get install pkg-config
安装完成,下面是生成文件的代码(makefile文件的就不写了,我是菜鸡,模仿着官方文档勉强写了一个),下面的命令到处都有:
生成grpc会生成.cc(c++源文件相当于cpp,构建服务器用):protoc --grpc_out=. --plugin=protoc-gen-grpc=`which grpc_cpp_plugin` 文件名.proto
生成.cc(构建连接参数):protoc --cpp_out=. 文件名.proto

编译单个文件:
g++ 文件名.cpp -I 头文件 -L库 -l  -o 

python版本grpc:
(不成功请尝试加sudo)
$ pip3 install --upgrade pip
if 失败:
$ pip3 install virtualenv
$ virtualenv venv
$ source venv/bin/activate
$ pip3 install --upgrade pip
else:
$ pip3 install grpc
if 失败:
可能会有python2和3不兼容的情况,下载源码包,修改其中python2语法为3,然后执行pip3 install 下载的源文件夹名字。
else:
$ pip3 install grpcio-tools(一般不会报错)
$ sudo pip3 install grpcio(这个我没装,暂时没影响,你们看情况)
结束安装,下面是生成grpc的代码proto文件:
$ python -m grpc_tools.protoc -I…/…/protos --python_out=. --grpc_python_out=. …/…/protos/helloworld.proto

gprc只要服务器和客户端都符合protobuf文件所写的规范,只要grpc支持的语言基本都可以调用。

传参数

在c++中添加protobuf的repeated类型的数据有add方法添加,
int,char类型就是用set方法添加

python构建protobuf的repeated类型使用extend的形式添加列表进去,
其他类型直接赋值即可
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值