<div dir="ltr"><div><div><div><div>Sorry about this...pressed send by mistake (should never write the address before completing the message): <br><br></div>I'll try again:<br></div>The code went in the first message there (below), but here is my question:<br>
<br></div>How can I get a etimedout message from gen_tcp:recv in this case? I get it if I leave the the connection idling for a couple of hours. The clients initially connect to the server, sends some messages, and then go idle and the server then get etimedout. <br>
<br>According to the manual pages of gen_tcp all default values for timeout values are set to infinity which to me would imply that the connection can close and all that and experience other errors but I should at least never get a etimedout value unless the length of "infinity" is highly exaggerated. <br>
<br></div><div>Does anyone have any idea why I can get the etimedout response from gen_tcp:recv in this case? Have I misunderstood the documentation? <br></div><div><br></div><div>This happens on R15B01 on Ubuntu 12.04 64bit server. <br>
<br></div><div>Kind regards,<br>Stefan Hellkvist<br></div><div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Sep 23, 2013 at 8:01 AM, Stefan Hellkvist <span dir="ltr"><<a href="mailto:hellkvist@gmail.com" target="_blank">hellkvist@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div><div><div>Hi, <br><br></div>Here is a question about why I sometimes get an etimedout error from gen_tcp:recv.<br>
<br></div>I open a tcp socket on the server side using lines like:<br><br>{ok, LSock} = gen_tcp:listen(Port, [binary, {packet, line}, {active, false}]),<br>
{ok, Sock} = gen_tcp:accept(LSock),<br></div>do_recv(Sock).<br><br><br></div>where do_recv is something like this:<br><br><br><div><div>do_recv(Sock) -><br>    case gen_tcp:recv(Sock, 0) of<br>        {ok, Data} -><br>
</div><div>           
%handle data<br></div><div>            do_recv(Sock); <br><br>        {error, Reason} -><br>            log("tcp_bus got error and shut down: ~p", [Reason])<br>    end.<br>
<br></div></div></div>
</blockquote></div><br></div></div></div>