[C#]实现GRPC通讯的服务端和客户端实例

最近要做两个软件之间消息的通讯,学习了一下GRPC框架的通讯。根据官方资料做了一个实例。
官方资料请参考:Create a .NET Core gRPC client and server in ASP.NET Core | Microsoft Learn

开发平台:Visual Studio 2022
开发前提条件:VS2022下载:ASP.NET and web development

vs创建服务端步骤:

.打开VS2022并且新建项目,在创建新项目的对话框中,搜索:gRPC,选择:ASP.NET Core gRPC Service的工程,然后点击下一步。
.出现配置项目的对话框中输入项目名如:[GrpcGreeter ],然后点击下一步。
.选择:.net8.0,然后选择创建。
按Ctrl+F5直接运行该项目工程。会显示以下对话框,点击yes.

开启服务后,服务端显示:

打开一个网络浏览器,输入网址:https://localhost:7147
可以看到:
确认工程文件:
Properties/launchSettings.json:启动设置

Protos/greet.proto:  用于定义通讯的消息的内容。
Services:用于通讯时调用的方法。
appSettings.json:用于Kestrel通讯的协议配置
Programs.cs:配置和启动服务。

vs创建客户端步骤:
.vs2022,新建项目。选择控制台应用,点下一步。
.项目名对话框中输入:GrpcGreeterClient,点下一步。
.设置为.net8.0,点击创建。
.客户端工程中下载安装NuGet包:Grpc.Net.Client,  Google.Protobuf,   Grpc.Tools
.将服务端 的Protos\greet.proto文件拷贝至客户端工程并且将该文件中的命名空间改为客户端的命名空间。option csharp_namespace = "GrpcGreeterClient";
.编辑工程文件:GrpcGreeterClient.csproj,新增一个groupitem项
<ItemGroup>
  <Protobuf Include="Protos\greet.proto" GrpcServices="Client" />
</ItemGroup>
.编译客户端工程,自动生成以下文件:
GrpcGreeterClient\obj\Debug\[TARGET_FRAMEWORK]\Protos\Greet.cs 缓冲协议代码
GrpcGreeterClient\obj\Debug\[TARGET_FRAMEWORK]\Protos\GreetGrpc.cs 客户端类
.更新Program.cs代码:
其中端口号7147和服务端的端口号保持一致。
.客户端异步调用了SayHello方法,返回回复结果。
.更新服务端 appsettings.Development.json文件为:

测试:
启动服务端 GrpcGreeter工程 Ctrl+F5  执行
启动客户端 GrpcGreeterClient工程   Ctrl+F5  执行
执行界面如下所示:


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/401038.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图像识别,图片线条检测

import cv2 import numpy as np # 读取图片 img cv2.imread(1.png)# 灰度化 gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 边缘检测 edges cv2.Canny(gray, 100, 200) 当某个像素点的梯度强度低于 threshold1 时&#xff0c;该像素点被认为是非边缘&#xff1b;当梯度强度…

达梦数据库版本介绍

达梦数据库根据不同用户的不同需求&#xff0c;提供了三种版本的数据库&#xff1a;DM Standard Edition 标准版、DM Enterprise Edition 企业版、DM Security Edition 安全版。那么这三种版本有什么区别&#xff0c;我们该如何选择合适的版本&#xff1f;下面先介绍三种版本各…

language model

1、language model&#xff08;LM&#xff09;&#xff1a;估计token序列的可能性 2、对于HMM&#xff0c;固定需要P(Y)才符合公式&#xff1b;对于LAS&#xff0c;加上P(Y)能够使效果更好 P(Y|X)需要成对的数据&#xff0c;而P(Y)不需要成对&#xff0c;所以可以得到很多数据 …

【区块链+金融服务】港融区域股权服务平台 | FISCO BCOS应用案例

中国证监会在 2020 年启动了区块链建设试点工作&#xff0c;提出建设基于区块链的场外市场登记系统和交易报告库&#xff0c;利 用区块链去中心化、不易篡改、安全稳定等技术特点&#xff0c;构建区域性股权市场数字化信任机制&#xff0c;为区域性股权市场 提供基础支撑设施。…

Linux11

Linux运行级别 graphical.target图形化模式 runlevel查看运行级别 init 6自动重启 centos7单用户模式修改密码 Windows安全模式可用来删除木马&#xff0c;更为方便 单用户模式修改密码 选择第一个 按e键进入编辑模式&#xff0c;并完成以下修改&#xff08;注意&#xff0…

Java爬虫中的数据清洗:去除无效信息的技巧

在互联网信息爆炸的时代&#xff0c;数据的获取变得异常容易&#xff0c;但随之而来的是数据质量的问题。对于Java爬虫开发者来说&#xff0c;如何从海量的网页数据中清洗出有价值的信息&#xff0c;是一个既基础又关键的步骤。本文将介绍Java爬虫中数据清洗的重要性&#xff0…

【C++】深入探索类和对象:初始化列表及其static成员与友元

C语法相关知识点可以通过点击以下链接进行学习一起加油&#xff01;命名空间缺省参数与函数重载C相关特性类和对象-上篇类和对象-中篇 本章将分享C中类和对象最后章节“深入探索类和对象&#xff1a;初始化列表及其static成员与友元”&#xff0c;希望通过这几篇关于类和对象文…

Linux信号的概念信号的产生

前言 我们前面已经对进程已做了介绍&#xff01;知道进程具有独立性&#xff0c;但在运行起来后可能会"放飞自我"&#xff0c;即不受控制的执行&#xff0c;这就会导致系统崩溃等问题&#xff0c;非常不利于管理。因此OS需要一种机制来协调和控制进程的运行&#xf…

PHP多城市多门店多端平台健身系统小程序源码

&#x1f3cb;️‍♀️&#x1f30d; 打造健身新纪元&#xff01;多城市多门店多端平台健身系统全解析 &#x1f3c3;‍♂️ &#x1f310; 开篇&#xff1a;跨越界限&#xff0c;健身无界 &#x1f30d; 在快节奏的现代生活中&#xff0c;健身已成为越来越多人追求健康与美好…

家纺四件套入驻亚马逊VC的四大优势——WAYLI威利跨境助力商家

亚马逊VC平台为供应商提供了一个庞大的客户基础。亚马逊作为全球最大的在线零售商之一&#xff0c;拥有数以亿计的活跃用户&#xff0c;这为家纺四件套品牌商家带来了前所未有的市场机遇&#xff0c;也深刻影响着消费者的购物体验。 以下是四大核心优势&#xff1a; 1.流量与曝…

AWS域名注册服务:为您的在线业务打下坚实基础

在如今的数字时代&#xff0c;域名是每个在线业务的基础。一个好的域名不仅可以提升品牌形象&#xff0c;还能为用户提供便捷的访问体验。亚马逊网络服务&#xff08;AWS&#xff09;提供了强大的域名注册服务&#xff0c;帮助企业轻松获取和管理域名。我们九河云将深入探讨AWS…

电影票购买管理系统-计算机毕设Java|springboot实战项目

&#x1f34a;作者&#xff1a;计算机毕设残哥 &#x1f34a;简介&#xff1a;毕业后就一直专业从事计算机软件程序开发&#xff0c;至今也有8年工作经验。擅长Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等。 擅长&#xff1a;按照需求定制化开发项目、 源…

米联客-FPGA程序设计Verilog语法入门篇连载-24 FPGA知识_认识FPGA中的状态机

软件版本&#xff1a;无 操作系统&#xff1a;WIN10 64bit 硬件平台&#xff1a;适用所有系列FPGA 板卡获取平台&#xff1a;https://milianke.tmall.com/ 登录“米联客”FPGA社区 http://www.uisrc.com 视频课程、答疑解惑&#xff01; 1概述 让FPGA电路&#xff0c;有序…

初识C++ · 智能指针

目录 前言&#xff1a; 1 智能指针的发展历史 2 unique_ptr和shared_ptr的基本使用 3 shared_ptr的模拟实现 4 有关定制删除器 前言&#xff1a; 智能指针的引入&#xff0c;我们得先从异常开始说起&#xff0c;异常面临的一个窘境是new了多个对象&#xff0c;抛异常了会…

厂家揭秘:劳保鞋里的防砸黑科技,这些材料你了解多少?

在工业生产的前沿阵地&#xff0c;安全生产始终是企业发展的基石&#xff0c;也是每一位劳动者的头等大事。在繁忙的生产线上&#xff0c;一双看似普通的劳保鞋&#xff0c;实则蕴含着保护我们双脚免受意外伤害的重要科技——防砸材料。今天&#xff0c;百华小编就来和大家盘点…

GitLab-CI/CD指南

由于公司没有运维&#xff0c;写go服务时各个环境编译部署还是略显麻烦&#xff0c;由于代码管理使用的是 gitlab&#xff0c;所以决定使用 gitlab 自带的 CI/CD 来做自动编译和部署&#xff0c;这样每次提交代码以后就可以自动部署到服务器上了。 gitlab 本身只有 CI/CD 的接…

STM32第十二节(中级篇):串口通信(第一节)——功能框图讲解

前言 我们在51单片机中就已经学习过了串口通信的相关知识点&#xff0c;那么我们现在在32单片机上进一步学习通信的原理。我们主要讲解串口功能框图以及串口初始化结构体以及固件库讲解。 STM32第十二节&#xff08;中级篇&#xff09;&#xff1a;串口通信&#xff08;第一节…

Python绘图入门:使用Matplotlib绘制柱状图

Python绘图入门&#xff1a;使用Matplotlib绘制柱状图 柱状图是一种常见的数据可视化方式&#xff0c;能够直观地展示不同类别之间的数据差异。在Python中&#xff0c;Matplotlib是一个非常强大且灵活的绘图库&#xff0c;它不仅能绘制简单的图表&#xff0c;还能创建复杂的多…

远程命令行控制SSH

第一次接触SSH是ROS小车作为服务端&#xff0c;通过ubuntu电脑客户端访问。因为机器人接键盘和屏幕操作起来不方便&#xff0c;所以使用SSH进行连接&#xff0c;方便对小车的操作。 1.服务端安装 打开终端查看ssh是否安装 sudo service ssh status 如果未安装 sudo apt upd…

【网络】私有IP和公网IP的转换——NAT技术

目录 引言 NAT工作机制​编辑 NAT技术的优缺点 优点 缺点 个人主页&#xff1a;东洛的克莱斯韦克-CSDN博客 引言 公网被子网掩码划分为层状结构&#xff0c;一个公网IP的机器又可以用很多私有IP搭建内网。在日常生活场景中用的都是私有IP&#xff0c;例如手机&#xff0c;…