如何使用 grpc 在 C++ 的嵌入式消息中将数据从服务器发送到客户端?

How to send the data from a server to a client in the embedded messages in C++ using grpc?

我正在实现一个简单的基于客户端-服务器 grpc-c++ 的应用程序。在 Hello rpc 中,我接受请求并发送另一条名为 SeverInfo 的消息的字段作为响应。问题是我完全不知道如何将此 ServerInfo 数据从服务器端发送到客户端。我们基本上使用 set_fieldname(例如:set_name)作为一般数据类型来发送数据,但是我们应该如何将此 serverInfo 数据发送到 HelloResponse,然后再发送到 HelloRequest。有人可以帮帮我吗??

下面我附上原型文件。

syntax = "proto3";
package sample;

service Sample {
   rpc Hello(HelloRequest) returns (HelloReply){}
}
message HelloRequest {
    string name = 1;
}
message HelloReply {
    ServerInfo sinfo = 1;
}
message ServerInfo {
    string name = 1;
    string os = 2;
}

您可以在服务定义中定义另一个 rpc,例如

service Sample {
   rpc Hello(HelloRequest) returns (HelloReply){}
   rpc GetServerInfo(HelloRequest) returns (ServerInfo){}
}

这对你有用吗?

这是对我有用的答案。谢谢。

ServerInfo* serverinfo=new ServerInfo();
serverinfo->set_name("");
serverinfo->set_os("");
HelloReply* rep;
rep->set_allocated_server(serverinfo);