On Sat, 2010-09-18, Lawrence D'Oliveiro wrote:
> In message 
> <2f830099-4264-47bc-98ee-31950412a...@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   .
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to