SO_REUSEPORT and gen_tcp

Fredrik Thulin <>
Mon May 22 13:30:54 CEST 2006


On Monday 22 May 2006 13:17, Andrew Lentvorski wrote:
> Well, I will take your answer as simply that nobody actually has
> asked for it.
...
> Fredrik Thulin wrote:
> > Even though it's called reuseaddr, the documentation you quoted
> > above says it is about port numbers. reuseaddr is, in my
> > experience, SO_REUSEPORT.
>
> I believe that you are correct on Windows.  However, I do not believe
> that is correct on any of the Unix flavors.
>
> There the two options have different semantics and do not imply one
> another.
>
> SO_REUSEADDR primarily allows servers to be restarted even before the
> TCP timeouts close a previous socket.  This is primarily useful when
> servers crash.
>
> SO_REUSEPORT actually allows completely duplicate socket bindings for
> the same local IP address/port combination.  This is not the case for
> SO_REUSEADDR.  It was supposed to be used for multicast, but has
> turned out to be useful for getting past NATs.

I see. I was not aware of the two different socket options, and clearly 
not qualified to answer your previous question. Please just disregard 
my previous e-mail.

/Fredrik



More information about the erlang-questions mailing list