title: Good timeout for heartbeating proto using TCP - Java Sockets
body: <p>Im implementing my own proto in Java, it will use a heartbeat over a TCP connection that I also use to transfer messages and files.
  For the client I am using blocking socket I/O.
  So here is how Im planning that will work...
  I will set the socket timeout for K seconds and make the heartbeat stay sending messages in an interval T, so that T &lt; K.
  If the timeout expires, looks like the server is offline for the client, or vice-versa.</p>
  
  <p>The heartbeat is the server sending a String and the Client answering another.</p>
  
  <p>I dont want to waste a lot of bandwidth but with a big timeout the server could be mistaken about the client´s status.</p>
  
  <p>What is a good K interval? I am thinking about 40 seconds</p>
  
  <p>PS: the strings are 8 letters sent in ISO-8859-1 so its small data</p>