package main import ( "context" "fmt" "io" "log" "time" "google.golang.org/grpc" hs "ch4.4-2/HelloService" ) func main() { conn, err := grpc.Dial("localhost:1234", grpc.WithInsecure()) if err != nil { log.Fatal(err) } defer conn.Close() client := hs.NewHelloServiceClient(conn) reply, err := client.Hello(context.Background(), &hs.String{Value: "hello"}) if err != nil { log.Fatal(err) } fmt.Println(reply.GetValue()) //grpc stream stream, err := client.Channel(context.Background()) if err != nil { log.Fatal(err) } go func() { for { if err := stream.Send(&hs.String{Value: "hi"}); err != nil { log.Fatal(err) } time.Sleep(time.Second) } }() for { reply, err := stream.Recv() if err != nil { if err == io.EOF { break } log.Fatal(err) } fmt.Println(reply.GetValue()) } }