如何在 Python 中检测 gRPC 服务器绑定失败


在 Python 中,

如果端口无法绑定,则运行server.start()时,我会在 stderr --- 上收到错误消息,但在 Python 中没有例外。

我们如何以编程方式检测 Python 中 gRPC 服务器中的绑定错误?

错误消息示例:

E1020 09:26:44.299467934    4160 server_chttp2.c:38]         {"created":"@1508506004.299423794","description":"No address added out of total 1 resolved","file":"src/core/ext/transport/chttp2/server/chttp2_server.c","file_line":245,"referenced_errors":[{"created":"@1508506004.299421071","description":"Failed to add any wildcard listeners","file":"src/core/lib/iomgr/tcp_server_posix.c","file_line":338,"referenced_errors":[{"created":"@1508506004.299410944","description":"Unable to configure socket","fd":4,"file":"src/core/lib/iomgr/tcp_server_utils_posix_common.c","file_line":200,"referenced_errors":[{"created":"@1508506004.299407382","description":"OS Error","errno":98,"file":"src/core/lib/iomgr/tcp_server_utils_posix_common.c","file_line":173,"os_error":"Address already in use","syscall":"bind"}]},{"created":"@1508506004.299419953","description":"Unable to configure socket","fd":4,"file":"src/core/lib/iomgr/tcp_server_utils_posix_common.c","file_line":200,"referenced_errors":[{"created":"@1508506004.299417439","description":"OS Error","errno":98,"file":"src/core/lib/iomgr/tcp_server_utils_posix_common.c","file_line":173,"os_error":"Address already in use","syscall":"bind"}]}]}]}
我相信

返回的端口号会0,但是既然您提出了问题,那么例外可能会更好。我已经提交了问题 13096 以更清楚地说明这一点。

最新更新