欢迎大家来到IT世界,在知识的湖畔探索吧!
一个简单的C#实例。包括:GRPC文件的创建生成、服务端和客户端函数类库的封装、创建服务端和客户端调用测试。若有错误或更好的方法还请指正。
- 1、创建并生成GRPC服务文件
(1)打开vs2022,创建新项目控制台应用(其他应用好像不行)。
(2)需要安装三个nuget包,如图:
(3)项目添加新建项,选择类,修改名称为Link.proto,添加后把内容全部删除。
(4)添加如下代码。测试实例为服务端和客户端传输字符串消息,所以博主只定义了一个方法(客户端调用,服务端重写),传输内容包括请求字符串和回复字符串。此处可自行定义。
proto
(5)右键Link.proto文件选择属性,生成操作选择如图:
(6)生成解决方案。在下图路径得到自动生成的两个类。
至此,获得GRPC服务需要的三个文件:Link.proto、Link.cs、LinkGrpc.cs。可以将这三个文件放在一个项目中直接使用,需要重写一下服务端方法、创建服务端和客户端的启动方法。但是如果不同的项目软件之间通讯需要各自如此开发。可以先封装成一个GRPC类库供其他项目直接调用。
- 2、服务端和客户端函数类库的封装
(1)vs2022创建类库(.NET Framework)项目。
项目添加现有项,上面获得的三个文件。安装nuget包:Grpc.Core和Google.Protobuf。
(2)此处创建两个类:LinkFunc用于放此类库可用于外部引用调用的方法。LinkServerFunc基于Link.LinkBase,用于重写在proto文件中定义的方法。
对于不同的项目,在客户端请求时,服务端要根据自身情况回复想回的内容,因此可以提供一个委托供外部自行开发回复函数。
在LinkFunc类中定义如下:
public static Func<string, string> ReplyMes;
欢迎大家来到IT世界,在知识的湖畔探索吧!
1)在LinkServerFunc类重写GetMessage方法如下:
LinkServerFunc
2)开始写LinkFunc类。
LinkFunc
(3)生成解决方案。Debug中可以得到项目的dll文件GrpcLink.dll,其他项目可以引用使用了。
- 3、创建服务端和客户端调用测试。
(1)vs2022创建两个Windows窗体应用(.NET Framework)项目。将上述GrpcLink.dll文件分别放入两个项目中,并添加dll引用。安装nuget包:Grpc.Core和Google.Protobuf。
(2)服务端TestServer项目。
窗体:
窗体代码:
TestServer
(3)客户端TestCilent项目。
窗体:
窗体代码:
TestCilent
(4)运行两个项目进行测试。
在客户端的发送区输入要发送的内容。
在服务端的回复区输入要回复的内容。
点击发送:
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/17958.html