一. 准备编译环境
安装各种依赖库,详见:Pre-requisites
brew install autoconf automake libtool shtool gflags
二. 安装protobuf3
git clone https://github.com/google/protobuf.git cd protobuf git checkout v3.5.0 sh ./autogen.sh ./configure --prefix=/usr/local/protobuf/ make && make install
三. 安装grpc
git clone -b $(curl -L https://grpc.io/release) https://github.com/grpc/grpc cd grpc git submodule update --init make && make install
编译成功后会在/usr/local/bin/ 生成grpc各语言插件,如grpc_cpp_plugin,grpc_php_plugin等。
四. helloworld教程
4.1 编译proto
syntax = "proto3"; option java_package = "ex.grpc"; package helloworld; // The greeting service definition. service Greeter { // Sends a greeting rpc SayHello (HelloRequest) returns (HelloReply) {} } // The request message containing the user's name. message HelloRequest { string name = 1; } // The response message containing the greetings message HelloReply { string message = 1; }
4.2 生成stub
protoc --cpp_out=. helloworld.proto protoc --grpc_out=. --plugin=protoc-gen-grpc=/usr/local/bin/grpc_cpp_plugin helloworld.proto
4.3 编译运行
Makefile是通过pkg-config方式来查找protobuf, grpc库位置,可直接修改Makefile 指定protobuf, grpc库位置编译。
./greeter_server
./greeter_client
客户端打印hello world
5. 协议分析
grpc使用http2作为通信协议,http2使用多路复用,二进制帧进行数据传输,效率更高。
http2 报文详见:RFC 7540 HTTP/2
6.1 setting
每个stream固定9个字节头 + Payload,用于设置连接参数。
6.2 HEADERS
打开一个流,发起http请求。
http/1中的 method: POST\r\n,http2为len + :method + len + :post,且各头部字段均为小写。
6.3 DATA
http1 header与data通过\r\n分隔,http2则为各个独立的stream。
参考链接:
相关推荐
grpc c++示例代码,vs2017编译,可运行,供学习参考使用
GRPC源码编译,v1.48.0-prel分支 git clone https://github.com/grpc/grpc 按照grpc/src/cpp/BUILDING.MD编译。 供源码不好获取,编译困难,又想使用或学习的同学。
异步grpc c++代码服务端例子,包括stream流
GRPC C++源码及第三方库
基于c++实现的GRPC服务端demo
Windows10、VS2019、C++ gRPC例子。包含所有需要的包。32位Debug模式编译,下载后可以独立运行。 操作步骤: https://blog.csdn.net/danxingxian_go/article/details/104176878 ...
VS2019 编译gRPC C++ x64版本
gRPC C++ x64-windows基于vcpkg包管理下载安装的gRPC做的一个例子, 帮助大家了解gRPC和vcpkg的用法,cmakelist的书写方式,gRPC的接口实现和调用,包含服务器端代码和客户端代码。
centos7环境下按照grpc用于c++开发
grpc静态库包含了32位 debug release版本;64位 debug release版本。 编译不容易,收取少量积分。 具体编译过程,请参考:https://blog.csdn.net/ManagerUser/article/details/126736076?spm=1001.2014.3001.5501
grpc c++ vs2019 内容,相关文档及demo请查看以下地址 https://blog.csdn.net/xie1xiao1jun/article/details/110959234 https://github.com/gmsec/cmsec
该资源是grpc的静态库 64位 debug&&release版本。
包含了编译grpc的编译环境
c++grpc实现代码
gRPC的通信方式-客户端流式、服务端流式、双向流式在Java的调用示例代码;gRPC的通信方式-客户端流式、服务端流式、双向流式在Java的调用示例代码.;gRPC的通信方式-客户端流式、服务端流式、双向流式在Java的调用示例...
gRPC-RPC库和框架gRPC是可以在任何地方运行的现代,开源,高性能的远程过程调用(RPC)框架。 gRPC使客户端和服务器应用程序可以透明地进行通信,并且简化了gRPC-RPC库和框架gRPC是可以在任何地方运行的现代,开源,...
自己编译出来的grpc C++头文件、库文件和可执行文件,使用VS2015,平台包括win32和x64,配置包括Debug(MDd)和Release(MD)。都是动态连接到CRT
grpc源代码和相对应的代码示例,可以帮助学习相关知识的同学作参考
利用Grpc实现四种客户端和服务端交互模式,并且代码中有中文说明,方便同仁们学习
C++的Jsonrpc,vs2015编译好的源码和库完整版,静态库,网上很难找的