当前位置: 首页 > wzjs >正文

阿里巴巴个人网站怎么做推广产品的方式有哪些

阿里巴巴个人网站怎么做,推广产品的方式有哪些,东莞我的网站建设,网上做博彩网站代理赚钱吗目录 环境准备定义 .proto 文件生成 C 代码编写服务端代码编写客户端代码编译与运行总结 1. 环境准备 安装 gRPC 和 Protobuf gRPC C 依赖 Protobuf 和一些第三方库,安装稍复杂。你可以参考官方gRPC安装文档。简单来说,你至少需要: 安装 …

目录

  1. 环境准备
  2. 定义 .proto 文件
  3. 生成 C++ 代码
  4. 编写服务端代码
  5. 编写客户端代码
  6. 编译与运行
  7. 总结

1. 环境准备

  1. 安装 gRPC 和 Protobuf
  • gRPC C++ 依赖 Protobuf 和一些第三方库,安装稍复杂。你可以参考官方gRPC安装文档。
  • 简单来说,你至少需要:
    • 安装 protobuf(协议缓冲库)
    • 安装 gRPC 库和其工具
  1. 安装基本依赖

2. 定义 .proto 文件

创建文件 greeter.proto

syntax = "proto3";package greeter;// 服务定义
service Greeter {rpc SayHello (HelloRequest) returns (HelloReply) {}
}// 请求消息
message HelloRequest {string name = 1;
}// 响应消息
message HelloReply {string message = 1;
}

3. 生成 C++ 代码

用 protoc 编译 .proto 文件,生成 C++ 需要的 .pb.h.pb.cc 和用于 gRPC 的 .grpc.pb.h.grpc.pb.cc

假设你在 greeter.proto 同目录下,执行命令:

protoc -I=. --grpc_out=. --plugin=protoc-gen-grpc=`which grpc_cpp_plugin` greeter.proto
protoc -I=. --cpp_out=. greeter.proto

运行后生成文件有:

  • greeter.pb.h 和 greeter.pb.cc (消息定义和序列化代码)
  • greeter.grpc.pb.h 和 greeter.grpc.pb.cc (服务端和客户端接口代码)

4. 编写服务端代码

文件名:greeter_server.cpp

示例代码:

#include <iostream>
#include <memory>    // 智能指针,用于管理资源
#include <string>#include <grpcpp/grpcpp.h>    // gRPC C++ 的主头文件,包含关键类和函数
#include "greeter.grpc.pb.h"     编译proto生成的代码,包含消息和服务定义// 使用 gRPC 和 proto 定义的命名空间,简化后面代码书写
using grpc::Server;
using grpc::ServerBuilder;
using grpc::ServerContext;
using grpc::Status;
using greeter::Greeter;
using greeter::HelloRequest;
using greeter::HelloReply;//这些头文件和命名空间是必备,包含了gRPC核心功能、消息类型和RPC服务定义。
//这里的 greeter.grpc.pb.h 是你用 protoc 从 greeter.proto 文件自动生成的,
//包含了消息类和抽象服务接口。// 实现服务定义的接口,继承 Greeter::Service 并实现 SayHello 方法
//你定义了一个服务类 GreeterServiceImpl,它“实现”了你在 .proto 里定义的服务接口 //Greeter::Service。
//final 表示不能再派生子类,保持简单安全。
class GreeterServiceImpl final : public Greeter::Service {Status SayHello(ServerContext* context, const HelloRequest* request,HelloReply* reply) override {std::string prefix("Hello, ");reply->set_message(prefix + request->name());std::cout << "收到来自客户端的请求,名字:" << request->name() << std::endl;return Status::OK;}
};void RunServer() {std::string server_address("0.0.0.0:50051");GreeterServiceImpl service;ServerBuilder builder;// 监听端口builder.AddListeningPort(server_address, grpc::InsecureServerCredentials());// 注册服务builder.RegisterService(&service);// 创建并启动服务器std::unique_ptr<Server> server(builder.BuildAndStart());std::cout << "服务器启动,监听端口: " << server_address << std::endl;// 阻塞等待服务器关闭server->Wait();
}int main(int argc, char** argv) {RunServer();return 0;
}

5. 编写客户端代码

文件名:greeter_client.cpp

示例代码:

#include <iostream>
#include <memory>
#include <string>#include <grpcpp/grpcpp.h>
#include "greeter.grpc.pb.h"using grpc::Channel;
using grpc::ClientContext;
using grpc::Status;
using greeter::Greeter;
using greeter::HelloRequest;
using greeter::HelloReply;class GreeterClient {public:// 构造函数,传入服务器地址GreeterClient(std::shared_ptr<Channel> channel): stub_(Greeter::NewStub(channel)) {}// 调用远程 SayHello 方法std::string SayHello(const std::string& user) {HelloRequest request;request.set_name(user);HelloReply reply;ClientContext context;Status status = stub_->SayHello(&context, request, &reply);if (status.ok()) {return reply.message();} else {std::cout << "RPC调用失败:" << status.error_code() << ": " << status.error_message() << std::endl;return "RPC失败";}}private:std::unique_ptr<Greeter::Stub> stub_;
};int main(int argc, char** argv) {GreeterClient greeter(grpc::CreateChannel("localhost:50051", grpc::InsecureChannelCredentials()));std::string user("world");if (argc > 1) {user = argv[1];}std::string reply = greeter.SayHello(user);std::cout << "从服务器收到的响应: " << reply << std::endl;return 0;
}

6. 编译与运行

这里给出一个简单的 CMakeLists.txt,方便你用 CMake 编译:

cmake_minimum_required(VERSION 3.5)project(greeter_cpp)# find grpc and protobuf packages
find_package(Protobuf CONFIG REQUIRED)
find_package(gRPC CONFIG REQUIRED)set(CMAKE_CXX_STANDARD 14)# proto 文件路径
set(PROTO_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR})# 生成的文件
set(PROTO_FILE greeter.proto)# protoc 指令自动生成的源文件
protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS ${PROTO_FILE})
grpc_generate_cpp(GRPC_SRCS GRPC_HDRS ${PROTO_FILE})add_executable(greeter_server greeter_server.cpp ${PROTO_SRCS} ${PROTO_HDRS} ${GRPC_SRCS} ${GRPC_HDRS})
target_link_libraries(greeter_server grpc++ protobuf)add_executable(greeter_client greeter_client.cpp ${PROTO_SRCS} ${PROTO_HDRS} ${GRPC_SRCS} ${GRPC_HDRS})
target_link_libraries(greeter_client grpc++ protobuf)

具体步骤:

  1. 在包含 CMakeLists.txt 的目录下创建 build 子目录:
    mkdir build
    cd build
    cmake ..
    make

  2. 先启动服务端:
    ./greeter_server
    

    你会看到:

    服务器启动,监听端口: 0.0.0.0:50051
     
  3. 打开另一个终端,启动客户端:
    ./greeter_client

    输出如下:

    从服务器收到的响应: Hello, world

    你也可以传参:

    ./greeter_client Alice

    输出:

    从服务器收到的响应: Hello, Alice

    7. 总结

  4. 定义接口和消息 放在 .proto文件里。
  5. 用 protoc 生成对应的 C++ 代码。
  6. 服务端实现接口并启动服务器监听。
  7. 客户端创建存根调用远程接口
  8. 你可以用 CMake 或其他构建工具编译。
  9. 这里用的是不安全(无加密)连接,真实项目推荐用 TLS。
http://www.dtcms.com/wzjs/202274.html

相关文章:

  • 为什么wordpress的css不起作用跟我学seo
  • 合肥知名网站推广企业网站建设流程
  • 网站开发专业是干嘛的网络营销未来有哪些发展趋势
  • 中国移动网站建设怎么做网络推广网络营销外包
  • 周口网站建设zkwebgoogle首页
  • 宝安企业网站建设外贸网站制作公司哪家好
  • 如何做网站手机百度网站登录入口
  • 做仿牌网站空间抖音推广网站
  • 网站技术策划自助建站平台
  • 泉州有专门帮做网站的吗东莞百度快速排名
  • 推荐一些做电子的网站永久免费域名注册
  • 个人网站做团购google浏览器官网
  • 参考网是正规网站吗武汉百度推广开户
  • 南昌网站建设公司效果营销型网站建设费用
  • 网站创意文案怎么做外链怎么做
  • 有哪些好用的网站免费二级域名生成网站
  • 建设银行官网首页网站南山片区nba排名最新
  • 官方网站welcome怎么注册软文写作网站
  • 上门做网站公司百度如何购买关键词
  • 有关建设网站的论文免费做网站怎么做网站
  • 西城网站建设公司做免费推广的平台
  • 花都建设网站百度推广有哪些形式
  • 金山网站建设交易链接
  • 做白酒网站软文营销的定义
  • 织梦网站登录seo论坛站长交流
  • 福州专业网站搭建排名广告搜索引擎
  • 政府网站建设的不足自制网页
  • 拼多多网店能挣钱吗杭州seo搜索引擎优化
  • bdcms 网站手机如何制作一个网页链接
  • 昆明做网站的今天国内新闻10条