c++客户端 grpc_gRPC官方文档(异步基础: C++)

异步基础: C++

本教程介绍如何使用 C++ 的 gRPC 异步/非阻塞 API 去实现简单的服务器和客户端。假设你已经熟悉实现同步 gRPC 代码,如gRPC 基础: C++所描述的。本教程中的例子基本来自我们在overview中使用的Greeter 例子。你可以在 grpc/examples/cpp/helloworld找到安装指南。

概览

gRPC 的异步操作使用CompletionQueue。 基本工作流如下:

在 RPC 调用上绑定一个 CompletionQueue

做一些事情如读取或者写入,以唯一的 voide* 标签展示

调用 CompletionQueue::Next 去等待操作结束。如果标签出现,表示对应的操作已经完成。

异步客户端

要使用一个异步的客户端调用远程方法,你首先得创建一个频道和存根,如你在同步客户端中所作的那样。一旦有了存根,你就可以通过下面的方式来做异步调用:

初始化 RPC 并为之创建句柄。将 RPC 绑定到一个 CompletionQueue。

CompletionQueue cq;

std::unique_ptr > rpc(

stub_->AsyncSayHello(&context, request, &cq));

用一个唯一的标签,寻求回答和最终的状态

Status status;

rpc->Finish(&reply, &status, (void*)1);

等待完成队列返回下一个标签。当标签被传入对应的 Finish() 调用时,回答和状态就可以被返回了。

void* got_tag;

boo

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值