34 lines
479 B
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
|
|
}
|