为 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
从客户端连接到它。
据我了解,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
从客户端连接到它。