Re: Error binding socket: address already in use

From: Colin Hirsch
Date: Thu Sep 14 2006 - 03:16:19 EST


On Wed, Sep 13, 2006 at 04:23:35PM +0100, Alan Cox wrote:
> Ar Mer, 2006-09-13 am 14:41 +0000, ysgrifennodd Peter Lezoch:
> > Hi,
> > killing a server task that is operating on a UDP socket( AF_INET,
> > SOCK_DGRAM, IPPROTO_UDP ), leaves the socket in an unclosed state.
>
> For UDP the socket closes at the point the last user of the socket
> closes. For TCP there is a time delay mandated by the specification.
>
> If you are seeing UDP sockets remain open when you kill a server make
> sure it hasn't forked other processes and passed them the file handle.

Additional note on REUSEADDR: The standard semantics of REUSEADDR on a
UDP socket is to allow several sockets to bind to the same address
simultaneously (!), i.e. if your server uses it you can start it several
times on the same socket, which is not what one normally wants.

Regards, Colin

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/