grpcexercises/calculator/client/Average.go

47 lines
698 B
Go

package main
import (
"context"
"git.gqnotes.com/guoqiang/grpcexercises/calculator/pb"
"log"
)
// Average 计算平均数-双向流式
func Average(client pb.CalculateServiceClient) {
// 构造数据
nums := []int64{1, 2, 3, 4, 5}
avClient, err := client.Average(context.Background())
if err != nil {
return
}
// 发送数据
for _, num := range nums {
err = avClient.Send(&pb.AverageRequest{
Num: num,
})
if err != nil {
return
}
recv, err := avClient.Recv()
if err != nil {
return
}
log.Printf("num:%+v\trecv:%+v\n", num, recv)
}
// 关闭连接
err = avClient.CloseSend()
if err != nil {
log.Fatalf("failed to close: %v", err)
return
}
}