gpt4 book ai didi

使用 poll() 检测连接丢失

转载 作者:行者123 更新时间:2023-11-30 17:01:21 24 4
gpt4 key购买 nike

我正在制作一个客户端服务器应用程序。以前在应用程序中,如果客户端出现故障,服务器将尝试重新连接(即,如果服务器端的 recv() 返回 0 值,服务器将返回接受连接)。现在我想修改服务器,允许它连接到多个客户端。我想到使用poll(),这样服务器就可以检查每个客户端一段时间。我想知道如何使用 poll 检查与客户端的连接是否丢失?

最佳答案

当将 Multiplex io 与 poll 结合使用时,您可以通过以下事件处理连接关闭:

  • POLLIN 当有数据要读取时,以及当您执行 readrecv 函数调用时,请确保已检查返回值,通常返回值0表示连接已关闭。这与您之前的单一客户端版本相同。

  • POLLRDHUP 表示对端已关闭连接,或关闭一半连接的写入。

  • POLLERR 用于其他错误。

当这三个事件被触发时,意味着客户端已经关闭了连接或者套接字上有错误,通常需要关闭套接字。

关于使用 poll() 检测连接丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37119325/

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