服务端
type Server struct {
}
func (s Server)SayHi(ctx context.Context, in *hello.HiRequest) (*hello.HiResponse, error){
//在proto生成的文件中变量名in代表客户端输入的信息,返回的则是输出到客户端的信息
rep:= hello.HiResponse{Ret: "hello,"+in.Name}
return &rep,nil
}
func main() {
//创建grpc服务
server := grpc.NewServer()
//hello是proto生成的文件的别名
hello.RegisterTestServiceServer(server,&Server{})
listen,err:= net.Listen("tcp","127.0.0.1:8080")
if err !=nil{
fmt.Println("网络错误")
}
server.Serve(listen)
}
客户端
package main
import (
"context"
"fmt"
"google.golang.org/grpc"
hello "micro_sevice_project/protoBuf_test"
)
func main(){
//withInsecure:跳过证书验证
conn,err := grpc.Dial("127.0.0.1:8080",grpc.WithInsecure())
if err != nil{
fmt.Println(err)
}
client:= hello.NewTestServiceClient(conn)
//SayHi是服务端定义的方法
rep,err1:=client.SayHi(context.Background(),&hello.HiRequest{Name: "analu"})
if err1 != nil{
fmt.Println(err1)
}
fmt.Println(rep.Ret)
}