首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >客户端不会检测到服务器断开

客户端不会检测到服务器断开
EN

Stack Overflow用户
提问于 2018-11-16 15:37:05
回答 1查看 1.8K关注 0票数 1

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

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

问题是,当服务器(CTRL-C)关闭时,客户端上的流确实会继续运行。

grpc::ClientWriter::Write

不会返回假的。我可以确认,使用netstat,我看不到客户机和服务器之间的任何连接(除了一段时间后消失的TIME_WAIT连接),并且客户机一直在调用该写入而没有错误。

是否有一种方法可以查看底层连接是否仍然处于上升状态,而依赖于写返回值?我使用grpc版本1.12

更新

我发现底层通道处于状态空闲状态,但仍然是ClientWriter::Write不报告错误,我不知道这是否有意。在流过程中,每次通道状态不是GRPC_CHANNEL_READY时,我都试图与服务器重新建立连接

EN

回答 1

Stack Overflow用户

发布于 2018-11-28 18:36:21

这种情况可能发生在一些场景中,但最常见的元素是连接问题。我们在gRPC中有KEEPALIVE支持来解决这个问题。对于C++,请参考https://github.com/grpc/grpc/blob/master/doc/keepalive.md,了解如何设置它。本质上,端点会在一定的时间间隔内发送pings,并期望在一定的时间范围内得到答复。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53341009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档