注1:参考代码取自 grpc 源码目录下的 examples\cpp\helloworld
注2:操作系统 CentOS 7.6
1. 安装 protoc 工具
- 下载 Grpc_v1.43.0_SetupFile.zip 文件,解压到任意目录
下载链接:https://pan.baidu.com/s/1HYjfQb8CQY56QF2iAGmBNw
提取码:grg0
注:Grpc_v1.43.0_SetupFile.zip 可由 grpc 源码编译安装得到,编译比较吃电脑配置,直接下载编译好的文件即可。
- 将解压后的 Grpc_v1.43.0_SetupFile/bin 中 的 protoc(文本文件,记录了版本信息)重命名为 protoc.version,然后将 protoc-3.18.1.0(可执行程序)拷贝一下并重命名为 protoc
注:原 protoc-3.18.1.0 文件也是需要用的,不能直接重命名。
2. 通过 protoc 生成 c++ 代码
- 任意目录下新建空文件夹 grpc_cpp_demo,在文件夹中创建 helloworld.proto 文件,示例如下:
View Code - 生成 Protobuf 消息 和 grpc 客户端和服务器
在 grpc_cpp_demo 目录下打开终端,执行如下命令:export MY_INSTALL_DIR=/home/zgd123/Projects/Grpc_v1.43.0_SetupFile
export PATH="$MY_INSTALL_DIR/bin:$PATH"
protoc --cpp_out=./ helloworld.protoprotoc --grpc_out=./ --plugin=protoc-gen-grpc=$MY_INSTALL_DIR/bin/grpc_cpp_plugin helloworld.proto
3. 编写客户端/服务器实现自定义业务逻辑
- 在 目录 grpc_cpp_demo 下,新建文件 greeter_server.cc 来编写服务器端相关代码,示例文件如下:
View Code - 在 目录 grpc_cpp_demo 下,新建文件 greeter_client.cc 来编写客户端相关代码,示例文件如下:
View Code
4. 通过 CMake 编译项目
- 在 目录 grpc_cpp_demo 下,新建文件 CMakeLists.txt 来编写 CMake 编译指令,示例文件如下:
View Code - 在目录 grpc_cpp_demo 下,打开终端,执行如下命令:
mkdir -p cmake/build pushd cmake/build cmake ../.. make -j popd
5. 运行项目
- 在目录 grpc_cpp_demo/cmake/build 打开 2 个终端,分别运行如下命令
./greeter_server
./greeter_client
- 终端输出如下:
Server listening on 0.0.0.0:50051
Greeter received: Hello world