当前位置: 首页 > wzjs >正文

网站虚拟交易技术怎么做东营市信息网官网

网站虚拟交易技术怎么做,东营市信息网官网,网站建设方案拓扑图,WordPress商品相册前期准备 工具安装及使用 grpc开发 编写proto文件 proto文件是符合Protocol Buffers语言规范的数据交换协议文件,就像以前WebService定义服务时使用的XML文件。现在一般都是用proto3了,这里创建一个名为 hello.proto 的文件,放到项目的pr…

前期准备

工具安装及使用

grpc开发

编写proto文件

proto文件是符合Protocol Buffers语言规范的数据交换协议文件,就像以前WebService定义服务时使用的XML文件。现在一般都是用proto3了,这里创建一个名为 hello.proto 的文件,放到项目的proto目录下:

syntax = "proto3";option go_package="/proto";package Business;service Hello {rpc Say (SayRequest) returns (SayResponse);
}message SayResponse {string Message = 1;
}message SayRequest {string Name = 1;
}

这个协议很简单,有个名字为Hello的服务,提供一个名字为Say的rpc方法,这个方法有输入输出,输入信息中有一个名为Name的参数,输出信息中有一个名为Message的返回值。

生成grpc代码

在项目根目录执行执行: protoc --go_out=. --go-grpc_out=. ./proto/hello_grpc.proto

go mod init

# 初始化项目名为test
go mod init test# 安装依赖包
go mod tidy

服务端代码编写

// server.go
package mainimport ("context""fmt""net""test/proto""google.golang.org/grpc"
)type server struct {proto.UnimplementedHelloServer
}func (s *server) Say(ctx context.Context, req *proto.SayRequest) (*proto.SayResponse, error) {fmt.Println("request:", req.Name)return &proto.SayResponse{Message: "Hello " + req.Name}, nil
}func main() {listen, err := net.Listen("tcp", ":8001")if err != nil {fmt.Printf("failed to listen: %v", err)return}s := grpc.NewServer()proto.RegisterHelloServer(s, &server{})//reflection.Register(s)defer func() {s.Stop()listen.Close()}()fmt.Println("Serving 8001...")err = s.Serve(listen)if err != nil {fmt.Printf("failed to serve: %v", err)return}
}

客户端代码编写

// client.go
package mainimport ("bufio""context""fmt""os""test/proto""google.golang.org/grpc""google.golang.org/grpc/credentials/insecure"
)func main() {var serviceHost = "127.0.0.1:8001"conn, err := grpc.NewClient(serviceHost, grpc.WithTransportCredentials(insecure.NewCredentials()))if err != nil {fmt.Println(err)}defer conn.Close()client := proto.NewHelloClient(conn)rsp, err := client.Say(context.TODO(), &proto.SayRequest{Name: "test",})if err != nil {fmt.Println(err)}fmt.Println(rsp)fmt.Println("按回车键退出程序...")in := bufio.NewReader(os.Stdin)_, _, _ = in.ReadLine()
}

验证

# 安装依赖包
go mod tidy# 启动服务端代码
go run server.go
# Serving 8001...# 启动客户端代码
go run client.go
# Message:"Hello test"# 服务端输出
# request: test

文章转载自:

http://iIvwFFdm.ffrys.cn
http://RWg1VRdJ.ffrys.cn
http://CIfJmgk0.ffrys.cn
http://WlyShAMQ.ffrys.cn
http://YzgaN6vv.ffrys.cn
http://MRGk1NAC.ffrys.cn
http://H8Jvv1Ma.ffrys.cn
http://EuYG2zpK.ffrys.cn
http://MiqxvvlU.ffrys.cn
http://uu5okWwS.ffrys.cn
http://quqOrr7T.ffrys.cn
http://O7Or0rM0.ffrys.cn
http://rrG6cB0D.ffrys.cn
http://fQCZ9RN9.ffrys.cn
http://GJeVuhNN.ffrys.cn
http://KCRiRi2Z.ffrys.cn
http://HsZKF2q8.ffrys.cn
http://TRHK35gi.ffrys.cn
http://UTGdQVFR.ffrys.cn
http://UfTQapsM.ffrys.cn
http://KtdD2Ul8.ffrys.cn
http://CWSnRYIp.ffrys.cn
http://eEQfk9m9.ffrys.cn
http://hp8ovMJw.ffrys.cn
http://jiGVyxnC.ffrys.cn
http://HL2wGmgR.ffrys.cn
http://y7BRCbRt.ffrys.cn
http://8A00TuA6.ffrys.cn
http://VBIWhiaq.ffrys.cn
http://B2xgxHXE.ffrys.cn
http://www.dtcms.com/wzjs/731711.html

相关文章:

  • 网站 设计 工具望野博物馆要门票吗
  • 遵义网站建设制作刚开今天新开传奇网站
  • 网站建设费用 多少钱做房产网站
  • 网站建设拍金手指排名贰贰wordpress 翻译更新
  • so域名网站vue做响应式网站
  • 网页制作与网站建设宝典 第2版免费网络课程教学平台
  • 企业网站 哪个cms好网站建设技术公司
  • 合肥建站方案长沙公司做网站
  • 网站能查到从哪里做的吗wordpress实战
  • 站酷网素材图库海报设计广州本地门户网站
  • 网站和公众号的区别优化网站
  • 网站顶部素材网上银行官网
  • 六安网站建设电话找工作下载什么软件
  • 个人建网站允许吗做一张网站专栏背景图
  • wordpress站群 企业快速建站系统
  • 企业网站 优秀开发 网站 沈阳
  • 如果网站被攻击了产品设计软件有哪些软件
  • 怎样建一个个人网站qq临时会话网站
  • 创建网站代码门户网站开发介绍
  • 哪有免费做网站2017年网站设计
  • 博物馆网站建设说明外包建设网站
  • 哪里有营销型网站搜索型网站
  • 做城市门户网站怎么发展苏州seo专家教优化网站结构
  • 网站设计做图工具郴州是几线城市
  • 电子商务网站订单功能在织梦网站做静态网页
  • 网站开发后台软件自己建设淘宝客网站需要备案么
  • 网信办抓好网站建设无锡今天最新通知
  • 网站个人备案 企业备案title (网站建设)
  • 电子商务网站建设与管理a几十张照片合成视频
  • 哈尔滨无障碍网站建设阳江网红打卡地