通信(四)gRPC

1. 简介

2. C++

2.1 编译.proto生成.pb.h和.pb.cc

  • grpc_cpp_plugin.exe生成
  • 编译时.proto自动生成

服务器示例

客户端示例

3. C#

示例包下载地址:https://download.csdn.net/download/qq_43572400/88908127

3.1 导入NuGet程序包

编译.proto生成.cs和Grpc.cs

  • grpc_csharp_plugin.exe生成
  • 编译时.proto自动生成
protoc --csharp_out=D:\output_directory --grpc_out=D:\output_directory --plugin=protoc-gen-grpc=D:\tools\grpc\grpc_csharp_plugin.exe --proto_path=D:\output_directory compile_proto.proto

在这个示例中:

  • --csharp_out=D:\output_directory 指定生成的 C# 文件输出目录。
  • --grpc_out=D:\output_directory 指定生成的 gRPC 文件输出目录。
  • --plugin=protoc-gen-grpc=D:\tools\grpc\grpc_csharp_plugin.exe 指定 grpc_csharp_plugin.exe 插件的路径。
  • --proto_path=D:\output_directory compile_proto.proto 是你的 .proto 文件的路径。

示例

static async Task test()
{
    Channel channel = new Channel("127.0.0.1:50051", ChannelCredentials.Insecure);
    var client = new TodoService.TodoServiceClient(channel);

    var request = new TodoRequest { Task = "Do something" };
    var response = client.SendTodo(request);

    Console.WriteLine("Response: " + response.Message);

    channel.ShutdownAsync().Wait();
    Console.WriteLine("Press any key to exit...");
    Console.ReadKey();
}

待增内容
远程调用框架

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
gRPC是一种高性能、开源的通信框架,它支持多种编程语言,包括C。要使用C实现双向通信gRPC,可以按照以下步骤进行: 1. 定义协议:首先,需要使用Protocol Buffers语言编写一个.proto文件,定义通信双方之间的数据结构和服务接口等信息。例如,可以定义一个简单的服务接口,包含两个双向通信的方法。 2. 生成代码:使用gRPC提供的protoc工具将.proto文件编译为对应编程语言(C)的代码。命令类似于:`protoc -I=. --grpc_out=. --plugin=protoc-gen-grpc=/path/to/grpc_c_plugin your_service.proto` 3. 实现服务:根据生成的代码,实现服务端和客户端的逻辑。服务端需要监听指定的网络地址,接受客户端请求,并对请求进行处理。客户端可以连接到服务端,发送请求并接收响应。 4. 实现双向通信:在服务端和客户端的代码中,使用gRPC提供的双向流式RPC(Bidirectional Streaming RPC)来实现双向通信。双向流式RPC允许服务端和客户端同时读写数据流,可以实现实时的双向通信。 5. 编译和运行:使用C编译器将实现的代码编译为可执行文件,然后分别在服务端和客户端上运行。 总结:使用C实现双向通信gRPC,通过定义协议、生成代码、实现服务、使用双向流式RPC等步骤,可以实现高效、可扩展的双向通信。双向通信可以满足多种应用场景的需求,如实时聊天、实时数据推送等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小老鼠不吃猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值