[erlang-questions] No timeout on connect

Gamoto <>
Mon Apr 6 11:30:56 CEST 2009

I corrected my code as you said. connect is not blocking for me !
After 5-6 seconds, I have the message "Error on connect ! Timeout
What is wrong ?


    case gen_tcp:connect("localhost",1688,[binary, {packet, 0}]) of
	    io:format("Socket established~n"),
	{error,Reason} -> io:format("Error on connect ! ~s~n",[Reason])


after Timeout->

>connect() is always blocking, that's why you can provide a timeout.
>If, however, you actually mean a connect that will continue to retry
>failed connections indefinitely, then no, you'd have to implement that
>behaviour yourself.
>Gamoto wrote:
>> I run on Windows server 2003
>> There is no parameter for making a "blocking" connect ?
>> John
>>> Gamoto wrote:
>>>> What is wrong in this code ? When I run it, without a listening server, after a few second, I have a timeout error !!
>>>> infinity parameter is not correctly defined ?
>>> Which OS and Erlang release are you using?  When I try that on R12B-5
>>> for both Linux and Windows it returns quickly as well, but the Reason is
>>> 'econnrefused' which is what I'd expect to see when there's no server there.
>>> The timeout parameter is how long the connection attempt will wait for a
>>> response of any kind, be it success, refusal or some other kind of
>>> failure.  Setting it to 'infinity' (the default, by the way, so you
>>> don't need to explicitly set it) doesn't mean that it will keep retrying
>>> a failed connection indefinitely.
>>> Cheers,
>>> Bernard

More information about the erlang-questions mailing list