grpcexercises/calculator/server/Sum.go

34 lines
479 B
Go

package main
import (
"git.gqnotes.com/guoqiang/grpcexercises/calculator/pb"
"io"
"log"
)
// Sum 计算和-客户端流式
func (s *Server) Sum(stream pb.CalculateService_SumServer) error {
var sum int64
for {
req, err := stream.Recv()
if err == io.EOF {
log.Printf("req.Num: %v", req)
break
}
if err != nil {
return err
}
sum += req.Num
}
if err := stream.SendAndClose(&pb.SumResponse{Total: sum}); err != nil {
return err
}
return nil
}