gRpc 官网  链接

新建服务端项目

在服务端内先编写一个 .proto 文件

greet.proto

syntax = "proto3";

service Greeter {
rpc SayHello (HelloRequest) returns (HelloReply);
} message HelloRequest {
string name = ;
} message HelloReply {
string message = ;
}

服务端生成 .proto 代码为 C#   NutGet Install-Package Grpc.Tools

 

找到tools 从里面选择自己电脑的版本

把 protoc.exe 、 grpc_csharp_plugin.exe 复制出来和 .proto 文件放在一起

编写一个 .cmd 文件和 .proto 文件放在一起,插入生成代码的指令。(注意 greet.proto 这是 .proto 文件名)

protoc -I . --csharp_out . --grpc_out . --plugin=protoc-gen-grpc=grpc_csharp_plugin.exe greet.proto   

点击cmd 生成 会获得两个C#文件。

新建类GreeterService

并在使用客户端之前启动(启动服务端之前,要先排除与.Net 无关的.proto文件,不然直接运行会报错的)

public class GreeterService : Greeter.GreeterBase
{
private readonly ILogger<GreeterService> _logger; public GreeterService(ILogger<GreeterService> logger)
{
_logger = logger;
} public override Task<HelloReply> SayHello(HelloRequest request,
ServerCallContext context)
{
_logger.LogInformation("Saying hello to {Name}", request.Name);
return Task.FromResult(new HelloReply
{
Message = "Hello " + request.Name
});
}  
}
class Program
{ const int Port = ; static void Main(string[] args)
{
Server server = new Server
   {
Services = { Greeter.BindService(new GreeterService()) },
Ports = { new ServerPort("127.0.0.1", , ServerCredentials.Insecure) }
};
server.Start();
Console.WriteLine("127.0.0.1");
Console.WriteLine("GrpcService server listening on port " + Port);
Console.WriteLine("任意键退出...");
Console.ReadKey();
}
}

新建控制台客户端项目

客户端调用服务端

namespace gRPCClient
{
class Program
{
static void Main(string[] args)
{ // The port number(5001) must match the port of the gRPC server.
Channel channel = new Channel("127.0.0.1", , ChannelCredentials.Insecure);
var client = new Greeter.GreeterClient(channel).WithHost("127.0.0.1"); try
{
var reply = client.SayHelloAsync(new HelloRequest { Name = "Zhang San" });
Console.WriteLine("来自" + reply.ResponseAsync.Result); channel.ShutdownAsync().Wait();
Console.WriteLine("Greeting: " + reply.ResponseAsync.Result);
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
catch (Exception ex)
{ throw ex;
} }
}
}

gRPC搭建使用方式的更多相关文章

  1. Linux系统——搭建FTP方式的本地定制化Yum仓库

    (1)搭建公网源yum仓库 安装wget aliyun源 # wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epe ...

  2. 跟我一起学Go系列:Go gRPC 安全认证方式-Token和自定义认证

    Go gRPC 系列: 跟我一起学Go系列:gRPC安全认证机制-SSL/TLS认证 跟我一起学 Go 系列:gRPC 拦截器使用 跟我一起学 Go 系列:gRPC 入门必备 接上一篇继续讲 gRPC ...

  3. TensorFlow搭建模型方式总结

    引言 TensorFlow提供了多种API,使得入门者和专家可以根据自己的需求选择不同的API搭建模型. 基于Keras Sequential API搭建模型 Sequential适用于线性堆叠的方式 ...

  4. 使用gRPC搭建Server端与Client端

    gRPC简介 gRPC是一种RPC框架技术,采用Protocal Buffers(协议缓存) 作为其接口定义的语言(就是Proto来写接口)和基础的消息交换格式. 在gRPC中,客户端应用程序可以直接 ...

  5. CAS环境搭建-证书方式(https连接)

    一.教程前言 1 教程目的:从头到尾细细道来单点登录服务器及客户端应用的每个步骤 2 单点登录(SSO):请看<CAS简介> 3 本教程使用的SSO服务器是Yelu大学研发的CAS(Cen ...

  6. springboot的maven多模块项目架构微服务搭建——依赖方式的多模块演化为微服务项目

    在上一篇依赖方式多模块的基础上对项目进行改造.主要改造user-service项目,service要配置mapper.mybatis及数据库相关的东西,后面的接口消费方user就不再需要了 注意:以下 ...

  7. .NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端

    .NET Core love gRPC 千呼万唤的 .NET Core 3.0 终于在 9 月份正式发布,在它的众多新特性中,除了性能得到了大大提高,比较受关注的应该是 ASP.NET Core 3. ...

  8. 【网络安全】window 快速搭建 ftp 及 多种访问方式

    在局域网里面使用ftp传输文件比使用qq等软件传输速度快很多,但是搭建ftp很多时候需要下载相应的支持软件,其实不必下载相关的软件,因为window自带ftp功能. 演示操作系统:windows10 ...

  9. GRpc添加客户端的四种方式

    随着微服务的发展,相信越来越多的.net人员也开始接触GRpc这门技术,大家生成GRpc客户端的方式也各不相同,今天给大家介绍一下依据Proto文件生成Rpc客户端的四种方式 前提:需要安装4个Nug ...

随机推荐

  1. layui数据表格及分页

    一.前端部分 html只需要放一个有id的div就行了,方便js获取渲染区域 <div id="data_grid" lay-filter="demo" ...

  2. WSL初始配置+图形界面

    安装WSL 换源 参考另一篇文章https://www.cnblogs.com/bosslv/p/11006680.html 修改$PATH,默认会把windows的PATH也加入WSL中,不需要的话 ...

  3. Informatica9.5.1创建资源库出错找不到libpmora8.so

    错误信息: Database driver event...Error occurred loading library [libclntsh.so.10.1: cannot open shared ...

  4. python笔记15

    今日内容 模块知识 内置模块 time datetime json 其他 内容回顾 & 作业题 重要知识点 构造字典和函数对应关系,避免重复的if else a=1 b=2 ==> a, ...

  5. python中的变量和字符串

    一.变量 1.python变量 *变量用于存储某个或某些特定的值,它与一个特定标识符相关联,该标识符称为变量名称.变量名指向存储在内存中的值.在创建变量时会在内存中开辟一个空间.基于变量的数据类型,解 ...

  6. 基于HTTPS的接口测试——nginx配置SSL

    目录 基于HTTPS的接口测试--nginx配置SSL 1. 背景 2. 所需环境与域名备案解析 2.1 云服务器 2.2 域名 2.3 SSL证书 2.4 网站备案 2.5 域名解析 3.nginx ...

  7. 非常NB的一款快捷启动软件--Merry

    Merry 被设计为了能将日常重复性操作简化为一个快捷键或者命令.Merry 采用完全开放的体系, 可以使用 Lua 或者外部程序来扩展 Merry 的功能. 另附一个自己扩展的LUA脚本: --启动 ...

  8. Windows 7中的“帮助和支持”无法打开怎么办?

    win7 X64 将下面的代码导入注册表 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\.xml] @="xmlfile&q ...

  9. 洛谷P3177 [HAOI2015]树上染色(树形dp)

    题目描述 有一棵点数为 N 的树,树边有边权.给你一个在 0~ N 之内的正整数 K ,你要在这棵树中选择 K个点,将其染成黑色,并将其他 的N-K个点染成白色 . 将所有点染色后,你会获得黑点两两之 ...

  10. Codeforces_813

    A.统计总时间,从总时间开始找第一个能提交的点. #include<bits/stdc++.h> using namespace std; ],ok[] = {}; int main() ...