简介
本文主要讲述如何在Windows环境下使用visual studio配置grpc,并且实现grpc通信的例子。前文windows配置和编译grpc已经介绍了如何在windows环境配置grpc,接下来我们利用之前编译好的库配置到项目中,并实现grpc通信。
项目配置
我们为了方便配置,将之前下载和编译好的项目放在D盘cppsoft文件夹下,路径为D:\cppsoft\grpc
。
接下来我们创建一个项目,名字叫Grpc-Server,在项目的根目录下创建一个proto名字为demo.proto
1 | syntax = "proto3"; |
接下来我们利用grpc编译后生成的proc.exe生成proto的头文件和源文件
1 | D:\cppsoft\grpc\visualpro\third_party\protobuf\Debug\protoc.exe -I="." --grpc_out="." --plugin=protoc-gen-grpc="D:\cppsoft\grpc\visualpro\Debug\grpc_cpp_plugin.exe" "demo.proto" |
上述命令会生成demo.grpc.pb.h和demo.grpc.pb.cc文件。
D:\cppsoft\grpc\visualpro\third_party\protobuf\Debug\protoc.exe
表示protoc.exe所在的路径,你可以将其放在指定目录并配置环境变量,直接使用protoc.exe就行了。
-I="."
指定 demo.proto
所在的路径为当前路径。
--grpc_out="."
表示生成的pb.h和pb.cc文件的输出目录。
--plugin=protoc-gen-grpc="D:\cppsoft\grpc\visualpro\Debug\grpc_cpp_plugin.exe"
表示要使用的插件为cpp插件,也就是生成cpp类的头文件和源文件。
接下来我们生成grpc类需要的pb文件,因为要序列化数据。
1 | D:\cppsoft\grpc\visualpro\third_party\protobuf\Debug\protoc.exe --cpp_out=. "demo.proto" |
上述命令会生成demo.pb.h和demo.pb.cc文件。
接下来我们在项目中配置grpc库的包含目录和库目录。
为了方便调试,我们配置debug版本
项目属性中选择C++下的常规选项,在附加包含目录中添加我们grpc生成debug库
这里列举下要包含的目录
1 | D:\workspace\github\grpc\third_party\re2 |
接下来配置库路径, 在链接器常规选项下,点击附加库目录,添加我们需要的库目录。
同样,我们配置的是debug版本
要配置的库目录很多,这里详细列举一下
1 | D:\cppsoft\grpc\visualpro\third_party\re2\Debug |
另外,我们虽然配置了库目录,但还要将要使用的库链接到项目
在链接器输入选项下,点击附加依赖项添加依赖的库名字
库配置
库名字列举如下
1 | libprotobufd.lib |
grpc服务器
接下来我们写代码,实现grpc服务器
1 |
|
GreeterServiceImpl
继承自 Greeter::Service
,重写了SayHello
函数,当收到客户端发送的SayHello
请求后执行重写函数功能的逻辑。
grpc客户端
grpc客户端比较简单,直接调用发送接口发送数据即可
1 |
|
客户端创建了一个channel,然后调用NewStub生成stub,接下来就可以发送数据了,下面是运行的效果
总结
本文介绍了grpc在windows环境下的配置和使用