grpcexercises/calculator/client/Sum.go

47 lines
747 B
Go

package main
import (
"context"
"git.gqnotes.com/guoqiang/grpcexercises/calculator/pb"
"io"
"log"
)
// Sum 计算和-客户端流式
func Sum(client pb.CalculateServiceClient) {
// 构造一个切片
nums := []int64{1, 2, 3, 4, 5}
stream, err := client.Sum(context.Background())
if err != nil {
log.Fatalf("failed to call: %v", err)
return
}
// 发送数据
for i := 0; i < len(nums); i++ {
err = stream.Send(&pb.SumRequest{
Num: nums[i],
})
if err == io.EOF {
break
}
if err != nil {
log.Fatalf("failed to send: %v", err)
return
}
}
// 接收数据
resp, err := stream.CloseAndRecv()
if err != nil {
log.Fatalf("failed to recv: %v", err)
}
log.Printf("nums:%+v\tresp:%+v\n", nums, resp)
}