Go语言第八课 gRPC(续Go客户端验证)

在上一个项目gRPC-test的同级目录下建立新项目gRPC-test-cli

结构如下

.
├── gRPC-test
│   ├── main.go
│   └── proto-src
│       ├── helloworld.pb.go
│       └── helloworld.proto
└── gRPC-test-cli

    └── main.go

其中,gRPC-test-cli/main.go是从https://github.com/grpc/grpc-go/blob/master/examples/helloworld/greeter_client/main.go改过来的,如下:

/*
 *
 * Copyright 2015 gRPC authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 */

package main

import (
	"log"
	"os"
	"time"

	"golang.org/x/net/context"
	"google.golang.org/grpc"
	pb "../gRPC-test/proto-src"
)

const (
	address     = "localhost:50051"
	defaultName = "world"
)

func main() {
	// Set up a connection to the server.
	conn, err := grpc.Dial(address, grpc.WithInsecure())
	if err != nil {
		log.Fatalf("did not connect: %v", err)
	}
	defer conn.Close()
	c := pb.NewGreeterClient(conn)

	// Contact the server and print out its response.
	name := defaultName
	if len(os.Args) > 1 {
		name = os.Args[1]
	}
	ctx, cancel := context.WithTimeout(context.Background(), time.Second)
	defer cancel()
	r, err := c.SayHello(ctx, &pb.HelloRequest{Name: name})
	if err != nil {
		log.Fatalf("could not greet: %v", err)
	}
	log.Printf("Greeting: %s", r.Message)
}

先执行服务端,再执行客户端,可以看到客户端输出:

2018/06/13 00:57:52 Greeting: this is fuck test ---> Hello world

验证成功

猜你喜欢

转载自blog.csdn.net/yongyu_it/article/details/80680288