草庐IT

c - 如何在不读取 TCP 连接的情况下检查 TCP 连接是否被对等方正常关闭?

这个问题在这里已经有了答案:c++howtouseselecttoseeifasockethasclosed(4个答案)关闭6年前。我正在使用Linux。谁能给我一个例子,说明如何使用select()或poll()检查TCP连接是被对等方通过FIN关闭还是被RST终止?poll()可以通过在revents中设置POLLHUP或POLLERR来检测RST,但是select()没有这样的功能。在我的测试中,当套接字被RST终止时,getsockopt得到的套接字错误将是ECONNRESET。这是一种有效的方法吗?是否需要确定连接是如何关闭的?谢谢!