gpt4 book ai didi

c++ - 客户端未检测到服务器断开连接

转载 作者:太空宇宙 更新时间:2023-11-04 12:42:46 24 4
gpt4 key购买 nike

在我的应用程序 (c++) 中,我将服务公开为:

grpc foo(流请求)返回(回复){ }

问题是,当服务器出现故障时 (CTRL-C),客户端的流确实继续运行

grpc::ClientWriter::写入

不会返回错误。我可以确认使用 netstat 我没有看到客户端和服务器之间的任何连接(除了 TIME_WAIT 一个,它在一段时间后消失)并且客户端继续调用 Write 没有错误。

有没有办法查看底层连接是否仍然可用,而不是依赖于 Write 返回值?我使用 grpc 版本 1.12

更新

我发现底层 channel 进入 IDLE 状态,但 ClientWriter::Write 仍然没有报告错误,我不知道这是不是故意的。在流式传输期间,每次 channel 状态不是 GRPC_CHANNEL_READY 时,我现在都尝试重新建立与服务器的连接

最佳答案

这可能会在少数情况下发生,但最常见的因素是连接问题。我们在 gRPC 中提供了 KEEPALIVE 支持来解决这个问题。 C++请引用https://github.com/grpc/grpc/blob/master/doc/keepalive.md关于如何设置。本质上,端点会以特定的时间间隔发送 ping,并期望在特定的时间范围内得到回复。

关于c++ - 客户端未检测到服务器断开连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53341009/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com