What exactly does SO_KEEPALIVE do?

  From Andrew Gierth (andrew@erlenstar.demon.co.uk):

  The SO_KEEPALIVE option causes a packet (called a 'keepalive probe')
  to be sent to the remote system if a long time (by default, more than
  2 hours) passes with no other data being sent or received. This packet
  is designed to provoke an ACK response from the peer. This enables
  detection of a peer which has become unreachable (e.g. powered off or
  disconnected from the net).  See ``2.8 Why does it take so long to
  detect that the peer died?''  for further discussion.

  Note that the figure of 2 hours comes from RFC1122, "Requirements for
  Internet Hosts". The precise value should be configurable, but I've
  often found this to be difficult.  The only implementation I know of
  that allows the keepalive interval to be set per-connection is SVR4.2.

Suggest a Site