» gRPC快速入门:C++ » 4. 创建 server » 4.2 启动 server

启动 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 来构建、启动服务器:

  1. 为服务实现类 RouteGuideImpl 创建一个实例。
  2. 为工厂类 ServerBuilder 创建一个实例。
  3. 使用 builderAddListeningPort() 方法指定想要监听的地址和端口。
  4. 将我们的服务实现注册到 builder 上。
  5. 调用 BuildAndStart() 来为服务创建并启动一个 RPC server。
  6. 调用 Wait() 来阻塞等待,直到进程被杀或 Shutdown() 被调用。