grpc 1 - protobuf 1

以前的通讯架构有点乱七八糟,自己写协议,自己写通讯,关键内容也是都很简单。

想尝试下grpc。

装好了grpc,现在开始正式入门。

算是个记录贴吧。

先从protobuf开始。

按习惯先建立文件系统:

protobuf_study/
        src/
        include/
        lib/
        test/
        CMakeLists.txt
        user_info.proto

user_info.proto如下:

syntax = "proto3";


message User {
    string name = 1;
    int64 age = 2;
    string phone_number = 3;
}

随后在系统根目录使用:

protoc --cpp_out=./src/ user_info.proto

在src文件夹下新生成了两个新文件:

user_info.pb.h
user_info.pb.cc

个人习惯,将.h文件移动至include/中,项目文件夹变为:

protobuf_study/
        src/
            user_info.pb.cc
        include/
            user_info.pb.h
        lib/
        test/
            test1.cpp
        CMakeLists.txt
        user_info.proto

test1.cpp内容为:

#include "user_info.pb.h"

int main() {
  User test;

  test.set_name("OhItsMeDuh");
  test.set_age(22);
  test.set_phone_number("110112119");
  test.set_name(test.name() + " didn't see that coming huh");

  std::cout << "the size of this user is: " << test.ByteSizeLong() << std::endl;

  std::cout << "serialize as string: " << test.SerializeAsString() << std::endl;
  std::string k = "asdf12a3a1123123123123123";
  std::cout << "k size was: " << k.size() << std::endl;
  test.AppendToString(&k);
  std::cout << "now k size become: " << k.size() << std::endl;
  std::cout << k << std::endl;
  return 1;
}

CMakeLists为:

cmake_minimum_required(VERSION 3.10)

project(ProtobufStudy)

set(ROOT_DIR ${PROJECT_SOURCE_DIR})
set(LIB_DIR ${PROJECT_SOURCE_DIR}/lib)
set(SRC_DIR ${PROJECT_SOURCE_DIR}/src)
set(INCLUDE_DIR ${PROJECT_SOURCE_DIR}/include)
set(TEST_DIR ${PROJECT_SOURCE_DIR}/test)
set(EXE_DIR ${PROJECT_SOURCE_DIR}/exe)

set(LIBRARY_OUTPUT_PATH ${LIB_DIR})
SET(EXECUTABLE_OUTPUT_PATH ${EXE_DIR})


include_directories(${INCLUDE_DIR})
link_directories(${LIB_DIR})

add_library(UserInfo ${SRC_DIR}/user_info.pb.cc)
target_link_libraries(UserInfo protobuf)

add_executable(test1 ${TEST_DIR}/test1.cpp)

target_link_libraries(test1 UserInfo)

运行结果(有些字符显示不出来。。嗯。。):

the size of this user is: 52
serialize as string: 
%OhItsMeDuh didn't see that coming huh	110112119
k size was: 25
now k size become: 77
asdf12a3a1123123123123123
%OhItsMeDuh didn't see that coming huh	110112119

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值