首页 > 解决方案 > 使用 libuv 检测 TCP 断开连接的正确方法

问题描述

在服务器部分,我如何检测到一个已连接的客户端(TCP 流)刚刚断开连接?

标签: c++libuv

解决方案


@MSalters,我终于找到了答案。“uv_read_start”的libuv回调函数在connexion关闭时不返回0(nread!= 0),它返回UV_EOF。在我的配置中,UV_EOF 是 -4095。当 nread == UV_EOF 时发生断开连接。我认为可以在与句柄关联的 FD 上进行 posix 读取,但这一点也不漂亮(而且更复杂,因为 IO 是异步的......)。


推荐阅读