.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 ...
随机推荐
- 从零开始的react入门教程(一),让我们从hello world开始
壹 ❀ 引 按照之前的计划,从这个月开始,我将由浅至深更新一些react相关的技术博文.由于我目前也是react新手一名,所以文章本质上也算自己学习历程的记录,倘若这些文章能帮助到一些人那就再好不过了 ...
- 【Unity3D】固定管线着色器一
1 前言 着色器(Shader)是渲染管线中最重要的一环,Unity3D 底层基于 OpenGL 实现,读者可以通过 渲染管线 了解 Unity3D 渲染流程. OpenGL 1.x 为固定管 ...
- Java Solon v2.7.0 发布
Java Solon 是什么框架? Java "生态级"应用开发框架.从零开始构建,有自己的标准规范与开放生态.(历时七年,具备全球第二级别的生态规模) 相对于 Spring,有什 ...
- centos7创建MySQL自动备份脚本
说明 最近需要给wordpress站点搞一个定时备份mysql数据库,所以记录一下. 操作步骤 1.创建备份脚本 这一步最重要,创建目录:/home/wpblog_backup,然后在目录下创建she ...
- Oracle字符串行专列(字符串聚合技术)
原文链接:http://oracle-base.com/articles/misc/string-aggregation-techniques.php 1 String Aggregation ...
- docker启动nginx https自签名证书配置
启动测试应用时, 有时需要自己配置证书签名: 1 使用系统自带openssl openssl req \ > -x509 \ > -nodes \ > -days 365 \ > ...
- 在SpringBoot中实践AOP编程
具体实践 Spring AOP是Spring框架中一个支持实现面向切面编程的模块,由于Spring Boot已经把Spring框架组合得非常好用,所以在基于Spring Boot框架的项目中实现AOP ...
- 项目实战:Qt+OpenCV激光射击游(识别激光、识别圆)
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...
- 【Filament】绘制圆形
1 前言 Filament环境搭建中介绍了 Filament 的 Windows 和 Android 环境搭,绘制三角形中介绍了绘制纯色和彩色三角形,绘制矩形中介绍了绘制纯色和彩色矩形,本文将使用 ...
- Golang标准库——io
原文:Golang标准库--io 1.io io包提供了对I/O原语的基本接口.本包的基本任务是包装这些原语已有的实现(如os包里的原语),使之成为共享的公共接口,这些公共接口抽象出了泛用的函数并附加 ...