C++ 使用libuv检测TCP断开的正确方法

C++ 使用libuv检测TCP断开的正确方法,c++,libuv,C++,Libuv,在服务器部分,如何检测allready连接的客户端(TCP流)刚刚断开连接?@MSalters,我终于找到了答案。“uv_read_start”的libuv回调函数不返回0(nread!=0)。当连接关闭时,它返回uv_EOF。在我的配置中,UV_EOF为-4095。当nread==UV_EOF时发生断开。我认为可以在与句柄相关联的FD上读取posix,但这一点也不太好(而且更复杂,因为IOs是异步的…。可能重复@FantasticMrFox:这也适用于libuv吗?@MSalters我想是的。

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

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

可能重复@FantasticMrFox:这也适用于libuv吗?@MSalters我想是的。这里的答案很简单,写一堆代码并期望最终收到
ECONNRESET
错误。这是TCP问题,而不是包装库问题。因此libuv的TCP_句柄可能会表现出相同的行为。