go- Grpc 的使用 - 创建 serve.go 和 client.go

3 篇文章 0 订阅
2 篇文章 0 订阅

windows 安装使用 protochttps://mp.csdn.net/mp_blog/creation/editor/121233500php-Grpc 实现客户端https://blog.csdn.net/kolinhu/article/details/121234055?spm=1001.2014.3001.5502

demo2 码云地址https://gitee.com/linhu8493/go-php-grpc

1. 创建 data2/go_server/serve.go 服务端

package main

import (
	// 引入刚打好的包  此处 需要核对 hello.proto  go_package 
	"demo2/helloGo/hello/hello" 
	"net"
	"fmt"
	"google.golang.org/grpc"
	"context"
)

type rpcServer struct {}


/**
	创建映射对象 使用*号 深复制 register的rpcS.. 对象
	@param ctx context 
	@param 
*/
func (r *rpcServer) Run( ctx context.Context, param *hello.Requests) (*hello.Responses, error) {
	// 打印输出 客户端值并返回 Responses数据对象
	fmt.Print(param.Name)
	return &hello.Responses{
		Message : "hello"+ param.Name,
	},nil
}

func main() {
	//创建 net服务监听端口
	li, err := net.Listen("tcp", ":1234");

	if err != nil {
		panic(err)
	}

	// 实例化 grpc server
	server := grpc.NewServer()

	// 注册hello 绑定给 &rpcServer对象
	hello.RegisterHelloServer(server, &rpcServer{})

	// 开启服务
	server.Serve(li)
}

2. 创建 demo2/go_client/client.go 客户端

package main
 
import (
    "context"
	"fmt"
	"grpc/demo1/hello/hello"
    "time"
    "google.golang.org/grpc"
)

func main() {
	// 客户端监听端口
	conn, err := grpc.Dial("127.0.0.1:1234", grpc.WithInsecure())
	if err != nil {
		panic(err)
	}
	defer conn.Close()

	// 获取文本对象
	ctx, cancel := context.WithTimeout(context.Background(), time.Second)
	defer cancel()

	//创建对象
	client := hello.NewHelloClient(conn)
	res,err := client.Run(ctx, &hello.Requests{Name:"小Q",})
	fmt.Print(res)
}

3. 测试

1. 开启 服务端
go run .\demo2\go_serve\serve.go

2. 运行客户端
go run demo2\go_client\client.go

3. 此时 服务端接收输出 "小Q", 客户端接收输出 "message:"hello小Q""

 4. success

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值