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) }