博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
gRPC在c#中的使用(服务端)
阅读量:7092 次
发布时间:2019-06-28

本文共 2081 字,大约阅读时间需要 6 分钟。

hot3.png

在 Visual Studio Community 中"新建项目"->"类库",名称填写"Greeter",解决方案名称填写"helloworld",如下图:

143336_JrLv_2891344.png

删除自动生成的类“class1.cs”:

155437_flIu_2891344.png

新建一个文件名称为"helloworld.proto",内容如下:

syntax = "proto3";package helloworld;// 服务端定义service Greeter {// 服务端返馈信息方法rpc SayHello (HelloRequest) returns (HelloReply) {}}// 包含用户名的请求信息message HelloRequest {string name = 1;}// 服务端响应信息message HelloReply {string message = 1;}

开启"程序包管理器控制台",位置如下图:

144859_pOTU_2891344.png

使用下面命令引入gRPC包:

Install-Package Grpc
Install-Package Google.Protobuf
Install-Package Grpc.Tools

在"helloworld"目录下执行如下命令:

packages\Grpc.Tools.1.0.0\tools\windows_x64\protoc.exe -IGreeter --csharp_out Greeter  Greeter/helloworld.proto --grpc_out Greeter --plugin=protoc-gen-grpc=packages\Grpc.Tools.1.0.0\tools\windows_x64\grpc_csharp_plugin.exe

执行结果如下图:

145915_MbEh_2891344.png

右键单击项目名称“Greeter”,把自动生成的两个文件"HelloworldGrpc.cs"和"Helloworld.cs" 加入项目中:

150044_2f36_2891344.png

150315_AS1n_2891344.png

在根项目中右击添加新项目:

150807_ZBjD_2891344.png

选择“控制台应用程序”,项目名称命名为“GreeterServer”:

150949_1Jbn_2891344.png

在程序包管理器控制台把默认项目改为“GreeterServer”

151706_I3zF_2891344.png

在控制台执行如下命令导入gRPC动态库:

Install-Package Grpc

在“GreeterServer”里引入项目“Greeter”

152301_NJFL_2891344.png

 

152350_U4uj_2891344.png

在“GreeterServer”下的“Program.cs”填写如下代码:

using System;using System.Threading.Tasks;using Grpc.Core;using Helloworld;namespace GreeterServer{    class GreeterImpl : Greeter.GreeterBase    {        // 服务端RPC的SayHello操作方法        public override Task
SayHello(HelloRequest request, ServerCallContext context) { return Task.FromResult(new HelloReply { Message = "你好 " + request.Name }); } } class Program { const int Port = 50051; public static void Main(string[] args) { Server server = new Server { Services = { Greeter.BindService(new GreeterImpl()) }, Ports = { new ServerPort("localhost", Port, ServerCredentials.Insecure) } }; server.Start(); Console.WriteLine("Greeter server listening on port " + Port); Console.WriteLine("Press any key to stop the server..."); Console.ReadKey(); server.ShutdownAsync().Wait(); } }}

把“GreeterServer”设为启动项目,如下图:

160527_sxJK_2891344.png

单击“启动”按钮,启动gRPC服务端:

160743_G7H9_2891344.png

结果如下图:

160834_GWNG_2891344.png

转载于:https://my.oschina.net/zhizhisoft/blog/758608

你可能感兴趣的文章
多从库时半同步复制不工作的BUG分析
查看>>
IOS像素与分辨率
查看>>
swig 基于neko vm的类型包装
查看>>
Dubbo学习(一)
查看>>
我的友情链接
查看>>
类的继承
查看>>
Objective-C消息发送和消息转发机制
查看>>
Quartz 开源任务调度框架
查看>>
SASS界面编译工具——Koala的使用
查看>>
JSP放入Jar包支持
查看>>
润乾报表使用json数据源的方法改进
查看>>
小蚂蚁学习PS切图之基础操作(2)——工具栏的介绍
查看>>
【Mybatis】- sqlSession工作流程
查看>>
mysql str_to_date字符串转换为日期
查看>>
jsp---EL运算符
查看>>
剥去中国崛起的外衣(画皮)!
查看>>
Oracle中的substr方法
查看>>
Mysql日期和时间函数总结
查看>>
创建逻辑卷 安装lvm命令
查看>>
不使用root身份运行Wireshark
查看>>