c++中grpc简单使用---函数介绍及其代码演示

前言

C++ gRPC(Google Remote Procedure Call)是一种高性能、开源的远程过程调用框架,用于在不同服务之间进行通信。
配置gRPC可以访问该网站:grpc配置

一.函数介绍

下面是一些常见的 C++ gRPC 函数及其功能:

  1. grpc::Channel:表示一个 gRPC 通道,客户端通过这个通道与服务端进行通信。

  2. grpc::CreateChannel(const std::string& target, grpc::ChannelArguments channel_args =grpc::ChannelArguments()):创建一个 gRPC 通道。target 是服务端地址,例如 “localhost:50051”。channel_args 是可选的通道参数,例如超时时间、压缩方式等。

  3. grpc::ChannelArguments:表示 gRPC 通道的参数,例如超时时间、压缩方式等。

  4. grpc::ClientContext:表示一个 gRPC 客户端上下文,用于存储请求和响应的相关信息。

  5. grpc::Status:表示 gRPC 请求的状态,包括请求是否成功、错误代码和错误信息等。

  6. grpc::StubOptions:表示 gRPC 存根选项,用于配置 gRPC 存根的行为。

  7. grpc::ServerBuilder:表示 gRPC 服务器构建器,用于配置 gRPC 服务器。

  8. grpc::Server:表示一个 gRPC 服务器,用于处理客户端请求。

  9. grpc::ServerContext:表示一个 gRPC 服务器上下文,用于存储请求和响应的相关信息。

  10. grpc::Service:表示一个 gRPC 服务,包含一组接口和方法,用于处理客户端请求。

  11. grpc::ServerBuilder::AddListeningPort(const std::string& addr, grpc::ServerBuilder::Protocol protocol = grpc::ServerBuilder::Protocol::HTTP):添加一个监听端口。addr 是监听地址,例如 “localhost:50051”。protocol 是可选的协议,默认为 HTTP。

  12. grpc::ServerBuilder::RegisterService(const grpc::Service* service):注册一个 gRPC 服务。

  13. grpc::ServerBuilder::BuildAndStart():构建并启动 gRPC 服务器。

  14. grpc::ServerBuilder::Shutdown():关闭 gRPC 服务器。

  15. grpc::ServerBuilder::WaitForShutdown():等待 gRPC 服务器关闭。

  16. grpc::ServerBuilder::cq():返回 gRPC 服务器的 completion queue(完成队列),用于处理异步请求。

二.代码演示

api.proto


syntax = "proto3";
option java_multiple_files = true;
option java_package = "io.grpc.examples.routeguide";
option java_outer_classname = "RouteGuideProto";
option objc_class_prefix = "RTG";

package routeguide;

service Route {
   

  rpc Echo(RestRequest) returns (stream RestResponse) {
   }
}

// Response
message RestResponse {
   
  // The location from which the message is sent.
  int32 code = 1;
  string message = 2;
  string body = 3;
}
message RestRequest {
   
  string url = 1;
  string body = 2;
}

server.cc

#include <grpc/grpc.h>
#include <string>
#include "../grpc/api.grpc.pb.h"

#include <grpcpp/security/server_credentials.h>
#include <grpcpp/server_builder.h>
#include <grpcpp/server_context.h>
#include <iostream>
#include <dlfcn.h>
#include<iostream>
using grpc::Server;
using grpc::ServerBuilder;
using grpc::ServerContext;
using grpc::ServerReader
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值