我正在实现一个简单的基于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;
}发布于 2021-11-05 05:16:06
这就是对我有效的答案。谢谢。
ServerInfo* serverinfo=new ServerInfo();
serverinfo->set_name("");
serverinfo->set_os("");
HelloReply* rep;
rep->set_allocated_server(serverinfo);发布于 2021-11-03 21:39:49
您可以在服务定义中定义另一个rpc,如下所示
service Sample {
rpc Hello(HelloRequest) returns (HelloReply){}
rpc GetServerInfo(HelloRequest) returns (ServerInfo){}
}这对你有用吗?
https://stackoverflow.com/questions/69764480
复制相似问题