123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- package main
- import (
- "context"
- "fmt"
- "io"
- "log"
- "math"
- "research/grpc_msg_size/pb"
- "time"
- "google.golang.org/grpc"
- )
- func init() {
- log.SetFlags(log.Lmicroseconds | log.LstdFlags | log.Lshortfile)
- }
- var msg string
- func init() {
- var buf []byte
- for i := 0; i < 1024*1024*1024; i++ {
- buf = append(buf, '0')
- }
- msg = string(buf)
- }
- func main() {
- addr := fmt.Sprintf("localhost:%v", 55555)
- conn, err := grpc.Dial(addr, grpc.WithInsecure())
- if err != nil {
- log.Fatal(err)
- }
- defer conn.Close()
- client := pb.NewTestClient(conn)
- stream, err := client.Test(context.Background(), grpc.MaxCallRecvMsgSize(math.MaxInt32))
- for {
- err := stream.Send(&pb.Request{
- Msg: msg,
- })
- if err != nil {
- log.Fatal(err)
- }
- log.Println("send len", len(msg))
- ret, err := stream.Recv()
- if err == io.EOF {
- log.Println("recv eof")
- break
- }
- if err != nil {
- log.Println("recv error:", err)
- break
- }
- log.Println("recv len", len(ret.Msg))
- time.Sleep(1 * time.Second)
- }
- }
|