It is not clear from your description, but I assume that this is a plain socket connection and not some connection on top of HTTP. In this case setting a Timeout should work, but only if there are no middleboxes in between which might affect the connections. As soon as you add devices which keep a connection state, like packet filters to do NAT, you risk that the state in the middlebox times out before the server sends the response back and thus the connection is effectively closed. Doing keep-alive at TCP or application level works around this problem.

As for the more elegant solution: it depends a lot on what you consider elegant and what kind of load and resource restrictions you have. If you only have a few connections that doing keep-alive at the TCP level (e.g. using SO_KEEPALIVE) is a cheap and simple solution. If you have instead lots of connections on the server side which need a lot of memory together you might instead use only a few short connections and instead let the client poll for results.


In reply to Re: Timeout between client/server by noxxi
in thread Timeout between client/server by henzen

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.