socket.error: [Errno 98] Address already in use
Jorgen Grahn
grahn+nntp at snipabacken.se
Sat Sep 18 19:29:33 EDT 2010
On Sat, 2010-09-18, Lawrence D'Oliveiro wrote:
> In message
> <2f830099-4264-47bc-98ee-31950412ad43 at q21g2000prm.googlegroups.com>, cerr
> wrote:
>
>> I get a socket error "[Errno 98] Address already in use" when i try to
>> open a socket that got closed before with close(). How come close()
>> doesn't close the socket properly?
>
> The usual case this happens is you have a client connection open at the
> time, that was not properly terminated. Then the TCP stack goes through a
> holdoff period (2 minutes, I believe it is), to make absolutely sure all
> packets destined for the old connection have completely disappeared off the
> entire Internet, before it will let you open a socket on the same port
> again.
That's why Stevens recommends that all TCP servers use the
SO_REUSEADDR socket option. He also noted in his book:
"This scenario is one of the most frequently asked
questions on Usenet."
Possibly I missed something in the question, but it's worth googling for.
/Jorgen
--
// Jorgen Grahn <grahn@ Oo o. . .
\X/ snipabacken.se> O o .
More information about the Python-list
mailing list