启动 server
一旦我们实现了所有的方法,我们还需要启动一个 gRPC 服务器,以便客户端可以使用我们的服务。
以下代码片段显示如何为 RouteGuide
服务执行此操作:
void RunServer(const std::string& db_path) {
std::string server_address("0.0.0.0:50051");
RouteGuideImpl service(db_path);
ServerBuilder builder;
builder.AddListeningPort(server_address, grpc::InsecureServerCredentials());
builder.RegisterService(&service);
std::unique_ptr<Server> server(builder.BuildAndStart());
std::cout << "Server listening on " << server_address << std::endl;
server->Wait();
}
如你所见,我们使用 ServerBuild
来构建、启动服务器:
- 为服务实现类
RouteGuideImpl
创建一个实例。 - 为工厂类
ServerBuilder
创建一个实例。 - 使用
builder
的AddListeningPort()
方法指定想要监听的地址和端口。 - 将我们的服务实现注册到
builder
上。 - 调用
BuildAndStart()
来为服务创建并启动一个 RPC server。 - 调用
Wait()
来阻塞等待,直到进程被杀或Shutdown()
被调用。
Loading...
> 此处输出代码运行结果