2016-05-09 91 views
0

我在制作客户端服务器应用程序。以前在应用程序中,如果客户端关闭,服务器将尝试重新连接(即,如果服务器端的recv()返回0值,服务器将返回接受连接)。现在我想通过允许它连接到多个客户端来修改服务器。我想过使用poll(),因此服务器可以在每个客户端上检查一段时间。我想知道poll如何检查客户端连接是否丢失?使用poll进行连接丢失检测()

回答

0

poll使用多重IO,可以处理连接关闭与下列事件:

  • POLLIN当有数据读取,当你做了readrecv函数调用,请确保您检查返回值(通常为返回值0)表示连接已关闭。这与您之前的单一客户端版本相同。

  • POLLRDHUP这表明对方已关闭连接,或关闭写入连接的一半。

  • POLLERR其他错误。

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