47 lines
698 B
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
|
||
|
}
|
||
|
}
|