grpc包下自带测试例子,路径为google.golang.org/grpc/examples,我们使用例子下的helloworld工程进行测试。

      

▶ 编译server和client:

▶ 开启两个控制台分别运行greeter_server.exe和greeter_client.exe:

      

      


• .proto和.pb.go文件

       使用过protobuf就会知道,无论什么工程都需要一个.proto文件来定义数据的结构,该文件经过protoc.exe输出即可得到对应语言的源代码文件,例如c++得到的就是xxxx.pb.h和xxxx.pb.cc文件。而对于golang,则需要上述的插件支持,对应得到的是xxxx.pb.go文件。

       官方文档:

       

▶ proto文件中HelloRequest和HelloReply消息将被转换为go语言结构体,并自动添加了一些成员函数。

▶ proto文件中Greeter服务将自动生成GreeterClient和GreeterServer接口,其中GreeterClient将拥有一个内部类型greeterClient,greeterClient定义了SayHello的具体行为;而GreeterServer中的SayHello需要自行定义。

▶ greeterClient定义的SayHello具体行为核心一点为调用服务端的SayHello函数:

      

▶ 服务端需要定义SayHello的具体行为:

        

• pb.go文件生成命令