.Net 8.0 除gRPC之外的另一个选择,IceRPC之快束开始HelloWorld
作者引言
- 很高兴啊,我们来到了第一篇,程序员的HelloWorld,快速开始RPC之游
快速入门
演示如何在几分钟内,使用IceRPC,构建和运行一个完整的客户端-服务器(C/S)应用程序.
必要条件: 只要电脑安装 .NET 8 SDK 就行了.
来吧,开始你的RPC之旅
接下来,我们要一起构建一个简单的网络应用程序,包括如下:
- 服务端: 一个叫 greeter 服务的服务器
- 客户端: 与服务器建立连接,并注册
greeter服务,之后调用服务greet方法
客户端与服务器都是使用普通的控制台应用程序,没有Asp.net,没有依赖注入,简单吧.
来,我们开始:
第一步,我们先安装一个dotnet模板(打开cmd或terminal),可以快速生成,启动项目:
dotnet new install IceRpc.Templates
接下来,我们创建一个服务端:
直接用刚安装的模板,用 icerpc-slice-server 建一个服务MyServer,如下示:
dotnet new icerpc-slice-server -o MyServer
上面运行后,会生成 IceRPC + Slice 集成服务端项目,生成在目录 MyServer 下.
接下来,差不多,我们也用另一个模板 icerpc-slice-client 生成一个客户端叫MyClient:
dotnet new icerpc-slice-client -o MyClient
上面运行后,会生成 IceRPC + Slice 集成客户端项目,生成在目录 MyClient 下.
现在,我们完成了客户端与服务端的生成,来,我们运行它吧.
启动服务端
进入刚生成的服务端目录MyServer,运行如下指令:
cd MyServer
dotnet run
服务器现在正在侦听来自客户端的新连接:
dbug: IceRpc.Server[11]
Listener 'icerpc://[::0]?transport=tcp' has started accepting connections
启动客户端
打开另一个CMD或terminal,来启动客户端:
cd MyClient
dotnet run
客户端向服务器托管的服务发送一个greet请求:
dbug: IceRpc.ClientConnection[3]
Client connection from '[::1]:61582' to '[::1]:4062' connected
info: IceRpc.Logger.LoggerInterceptor[0]
Sent request greet to icerpc:/VisitorCenter.Greeter over
[::1]:61582<->[::1]:4062 and received a response with status code Ok
Hello, Reece!
dbug: IceRpc.ClientConnection[6]
Client connection from '[::1]:61582' to '[::1]:4062' shutdown
dbug: IceRpc.ClientConnection[5]
Client connection from '[::1]:61582' to '[::1]:4062' disposed
接下来
祝贺,我们已经成功创建了第一个IceRPC应用程序,RPC大门已为您打开.
作者结语
- 从第一行翻译开始,查看各种翻译,比如 百度翻译,有道翻译,加上自已的理解,有点小累啊
- 翻译的不好,请手下留情,人也要成长的,谢谢
- 如果对我有点小兴趣,如可加我个人微信哦,大家交个朋友,一起探讨人生。
- 觉得还不错的话,点个赞哦

.Net 8.0 除gRPC之外的另一个选择,IceRPC之快束开始HelloWorld的更多相关文章
- HttpClient + ASP.NET Web API, WCF之外的另一个选择
WCF的野心造成了它的庞大复杂,HTTP的单纯造就了它的简单优美.为了实现分布式Web应用,我们不得不将两者凑合在一起 —— WCF服务以HTTP绑定宿主于IIS. 于是有了让人晕头转向的配置.让人郁 ...
- ASP.NET Core 3.0 使用gRPC
一.简介 gRPC 是一个由Google开源的,跨语言的,高性能的远程过程调用(RPC)框架. gRPC使客户端和服务端应用程序可以透明地进行通信,并简化了连接系统的构建.它使用HTTP/2作为通信协 ...
- 关于.Net 7.0 RC gRPC JSON 转码为 Swagger/OpenAPI文档的注意事项
大家好,我是失业在家,正在找工作的博主Jerry,找工作之余,看到.Net 7.0 RC2发布了,就想测试下.Net 7.0 RC2 gRPC JSON 转码为 Swagger/OpenAPI文档的特 ...
- 处理程序“ExtensionlessUrlHandler-Integrated-4.0”在其模块列表中有一个错误模块“ManagedPipelineHandler”
新服务器安装完开发环境后,还需要注册framework4.0到IIS.不然会报错: HTTP 错误 500.21 - Internal Server Error 处理程序“Extensionles ...
- 与众不同 windows phone (38) - 8.0 关联启动: 使用外部程序打开一个文件或URI, 关联指定的文件类型或协议
[源码下载] 与众不同 windows phone (38) - 8.0 关联启动: 使用外部程序打开一个文件或URI, 关联指定的文件类型或协议 作者:webabcd 介绍与众不同 windows ...
- execlp("ls","flw","-?",(char *)0) 为什么少了最后的一个参数就不行?
execlp("ls","flw","-?",(char *)0) 为什么少了最后的一个参数就不行?
- IIS 发布 处理程序“ExtensionlessUrlHandler-Integrated-4.0”在其模块列表中有一个错误模块“ManagedPipelineHandler”
IIS上部署MVC网站,打开后500错误:处理程序"ExtensionlessUrlHandler-Integrated-4.0"在其模块列表中有一个错误模块"Manag ...
- 设子数组A[0:k]和A[k+1:N-1]已排好序(0≤K≤N-1)。试设计一个合并这2个子数组为排好序的数组A[0:N-1]的算法。
设子数组A[0:k]和A[k+1:N-1]已排好序(0≤K≤N-1).试设计一个合并这2个子数组为排好序的数组A[0:N-1]的算法.要求算法在最坏情况下所用的计算时间为O(N),只用到O(1)的辅助 ...
- application Initialization设置导致处理程序ExtensionlessUrlHandler-Integrated-4.0在其模块列表中有一个错误模块问题的解决
HTTP 错误 500.21 - Internal Server Error 处理程序“ExtensionlessUrlHandler-Integrated-4.0”在其模块列表中有一个错误模块“Ma ...
- OpenGL ES 2.0 Shader 调试新思路(二): 做一个可用的原型
OpenGL ES 2.0 Shader 调试新思路(二): 做一个可用的原型 目录 背景介绍 请参考前文OpenGL ES 2.0 Shader 调试新思路(一): 改变提问方式 优化 ledCha ...
随机推荐
- webpack学习笔记(一)安装与试用
由于初次接触 webpack(官网),对很多方面都不是很理解,在查找部分资料后记录一下自己的见解(本文实践基于webpack4). 1. 个人见解 简单来说,webpack就是js的 打包 工具.个人 ...
- 初次尝试GPU Driver —— 大范围植被渲染之着色
初次尝试GPU Driver -- 大范围植被渲染之着色 在<初次尝试GPU Driven -- 大范围植被渲染>中实现了草地分布,本文实现草的着色. 本文分四个部分: 生成网格 随机调整 ...
- Centos中报错apt Command not Found
先说结论: 在centos下用yum install xxxyum和apt-get的区别: 一般来说著名的linux系统基本上分两大类: RedHat系列:Redhat.Centos.Fedora等 ...
- RocketMQ—RocketMQ消息重复消费问题
RocketMQ-RocketMQ消息重复消费问题 重复消费问题的描述 什么情况下会发生重复消费的问题: 生产者多次投递消息:如果生产者发送消息时,连接有延迟,MQ还没收到消息,生产者又发送了一次消息 ...
- Ubuntu20.04 PyCharm不能输入中文的解决办法
在2020.3之后的PyCharm, 无法输入中文, 我使用的是ibus, 据网上搜索结果看, fctix也一样有问题. 在网上查到的, 修改环境变量的方式无效. 实际的原因在于JetBrain使用的 ...
- IPFS Gateway Selector IPFS下载网关选择工具
简介 用IPFS作文件分享可以覆盖很多场景, 现在IPFS网关也相当多了, 但是因为国内网络的状况, 不同网关在不同网络运营商的表现差别很大, 导致你提供的下载链接在对方那里可能速度很慢, 甚至无法访 ...
- Springboot集成Druid连接池并实现数据库密码加密
Druid介绍 Druid首先是一个数据库连接池.Druid是目前最好的数据库连接池,在功能.性能.扩展性方面,都超过其他数据库连接池,包括DBCP.C3P0.BoneCP.Proxool.JBoss ...
- 关于动态抽样(Dynamic Sampling)
关于动态抽样(Dynamic Sampling) 原文:http://www.oracle.com/technetwork/issue-archive/2009/09-jan/o19asktom-08 ...
- Kotlin 协程三 —— 数据流 Flow
目录 一.Flow 的基本使用 1.1 Sequence 与 Flow 1.2 Flow 的简单使用 1.3 创建常规 Flow 的常用方式: 1.4 Flow 是冷流(惰性的) 1.5 Flow 的 ...
- 【ACM专项练习#02】输入整行字符串、输入值到vector、取输入整数的每一位
输入整行字符串 平均绩点 题目描述 每门课的成绩分为A.B.C.D.F五个等级,为了计算平均绩点,规定A.B.C.D.F分别代表4分.3分.2分.1分.0分. 输入 有多组测试样例.每组输入数据占一行 ...