0
我在制作客户端服务器应用程序。以前在应用程序中,如果客户端关闭,服务器将尝试重新连接(即,如果服务器端的recv()
返回0值,服务器将返回接受连接)。现在我想通过允许它连接到多个客户端来修改服务器。我想过使用poll()
,因此服务器可以在每个客户端上检查一段时间。我想知道poll
如何检查客户端连接是否丢失?使用poll进行连接丢失检测()
我在制作客户端服务器应用程序。以前在应用程序中,如果客户端关闭,服务器将尝试重新连接(即,如果服务器端的recv()
返回0值,服务器将返回接受连接)。现在我想通过允许它连接到多个客户端来修改服务器。我想过使用poll()
,因此服务器可以在每个客户端上检查一段时间。我想知道poll
如何检查客户端连接是否丢失?使用poll进行连接丢失检测()
当poll
使用多重IO,可以处理连接关闭与下列事件:
POLLIN
当有数据读取,当你做了read
或recv
函数调用,请确保您检查返回值(通常为返回值0
)表示连接已关闭。这与您之前的单一客户端版本相同。
POLLRDHUP
这表明对方已关闭连接,或关闭写入连接的一半。
POLLERR
其他错误。
当三个事件触发时,这意味着客户端已经关闭了连接,或者在套接字上有错误,通常关闭套接字。