def set_keepalive(self,_sock, after_idle_sec=5, interval_sec=3, max_fails=60):
"""Set TCP keepalive on an open socket.--new add
It activates after 1 second (after_idle_sec) of idleness,
then sends a keepalive ping once every 3 seconds (interval_sec),
and closes the connection after 60 failed ping (max_fails), or 180 seconds
"""
_sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
_sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPIDLE, after_idle_sec)
_sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPINTVL, interval_sec)
_sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPCNT, max_fails)
评论列表
文章目录