【问题标题】:How to get the assigned port of a GrpcServer如何获取 GrpcServer 的分配端口
【发布时间】:2020-09-11 08:58:27
【问题描述】:

我想创建一个 gRPC 服务器并将其绑定到一个随机端口。
文档指出可以通过端口 0 (ServerPort.PickUnused = 0) 来实现此目的:

var server = new Server
{
  Ports = { new ServerPort("0.0.0.0", ServerPort.PickUnused, ServerCredentials.Insecure) }
};
// ... adding some services
server.Start();

如何确定已分配给服务器的端口?
通过的ServerPort 仍然提到0

var enumerator = server.Ports.GetEnumerator();
enumerator.MoveNext();
var serverPort = enumerator.Current as ServerPort;
Debug.Log($"RPC Server started on port {serverPort.Port}");
// Out: RPC Server started on port 0

【问题讨论】:

    标签: c# grpc


    【解决方案1】:

    有时在谷歌搜索之前阅读整个documentation page会节省很多时间。

    ServerPort 有一个名为BoundPort 的属性(引用:“服务器实际绑定的端口。
    如果您让服务器自动选择端口,这很有用。")

    这会返回实际的端口:

    Debug.Log($"RPC Server started on port {serverPort.BoundPort}");
    

    【讨论】:

    • 我们如何让客户知道这个随机选择的端口号?通过配置文件离线传递?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-25
    • 2017-02-26
    • 1970-01-01
    相关资源
    最近更新 更多