grpc c++ 客户端代码
时间: 2023-07-24 15:56:53 浏览: 162
以下是一个简单的 gRPC C++ 客户端代码示例:
```cpp
#include <iostream>
#include <memory>
#include <string>
#include <grpcpp/grpcpp.h>
#include "your_service.grpc.pb.h" // 根据你的实际服务文件名称进行包含
using grpc::Channel;
using grpc::ClientContext;
using grpc::ClientReader;
using grpc::Status;
using your_service::YourRequest;
using your_service::YourResponse;
using your_service::YourService;
class YourServiceClient {
public:
YourServiceClient(std::shared_ptr<Channel> channel)
: stub_(YourService::NewStub(channel)) {}
std::string YourRPCMethod(const std::string& input) {
YourRequest request;
request.set_input(input);
YourResponse response;
ClientContext context;
Status status = stub_->YourRPCMethod(&context, request, &response);
if (status.ok()) {
return response.output();
} else {
std::cout << "RPC failed with error code: " << status.error_code() << std::endl;
return "";
}
}
private:
std::unique_ptr<YourService::Stub> stub_;
};
int main() {
std::string server_address = "localhost:50051"; // 替换为你的 gRPC 服务器地址
YourServiceClient client(grpc::CreateChannel(server_address, grpc::InsecureChannelCredentials()));
std::string input = "Hello, gRPC!"; // 替换为你的输入
std::string output = client.YourRPCMethod(input);
std::cout << "Response: " << output << std::endl;
return 0;
}
```
请记得根据你的实际情况替换 `your_service.grpc.pb.h`、`your_service::YourRequest`、`your_service::YourResponse`、`your_service::YourService`、`YourRPCMethod`、`server_address` 和输入值等内容。此示例假设你已经根据你的服务定义生成了相应的 gRPC 代码。
阅读全文