[erlang-questions] gen_tcp:recv/3 timeout

Magnus Klaar <>
Tue Dec 27 16:52:45 CET 2011


Hi!

gen_tcp:recv(..., N, M) returns {error, timeout} if N bytes has not been
received after M milliseconds. If less bytes are available the call will
_not_ succeed. If you are receiving data at a slow rate specifying 0 as the
length is preferrable because the call will return whatever data is
available at the time. If there is no data available it will wait and
timeout if no data has been received after M milliseconds. If you don't
want to timeout at all when doing this, specify infinity as the timout
value.

MVH Magnus

On Tue, Dec 27, 2011 at 2:10 AM, Roberto Ostinelli <>wrote:

> dear list,
>
> when calling gen_tcp:recv/3 by specifying a length and a timeout, when
> will {error, timeout} be a response? Is it:
>
> 1. when no bytes are received for a period longer than the specified
> Timeout
> 2. when the number of bytes specified in Length is not received within
> Timeout
>
> if 2, what is the best solution to actually *not* have a recv/3 timeout
> while receiving bytes at a very low pace (for instance on very slow
> connections)?
>
> thank you,
>
> r.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20111227/615b17fd/attachment.html>


More information about the erlang-questions mailing list