为 gRPC 服务器设置端口

Setting port for gRPC server

据我了解,gRPC 的协议是 TCP 之上的 http2。所以,最大可以分配的端口是65535吧?但似乎如果我将服务器地址设置为超出范围的“0.0.0.0:70040”之类的东西,它仍然可以正常工作并且 gRPC 客户端能够连接并与 gRPC 服务器通信。我可以知道这实际上是什么意思吗?谢谢。

builder.AddListeningPort("0.0.0.0:70040", grpc::InsecureServerCredentials());

我怀疑问题在于,使用字符串作为端点地址限制了编译器验证无符号 16 位端口地址的能力。

70040 根据我清晨的计算是 10001000110011000 也就是 17 位。端口必须是 16 位,因此其中一位将被丢弃,可能是最重要的一位 (1)。

删除它,产生 1000110011000,它对应于 4504,它可能是正在使用的实际端口。

您可以尝试 运行 70040 上的服务器并使用 4504 从客户端连接到它。