'Address already in use' ... with TCPServer

Gabriel Genellina gagsl-py2 at yahoo.com.ar
Fri Jan 30 10:16:01 CET 2009

En Fri, 30 Jan 2009 05:43:33 -0200, Mabooka-Mabooka Mbe-Mbe  
<ochichinyezaboombwa at yahoo.com> escribió:

>   setsockopt(REUSEADDR)...
> What I came up with so far is this:
>>>> from SocketServer import *
>>>> s = TCPServer( ('', 32123), None)
>>>> dir(s)
> ['RequestHandlerClass', '__doc__', '__init__', '__module__',  
> 'address_family', 'allow_reuse_address', ... ]
> Aha! My bet is (was):
>>>> s.allow_reuse_address=1
> should do the trick.

It's too late then; bind() has already been called. The easiest way is to  
define your own derived class:

import SocketServer

class TCPServer(SocketServer.TCPServer):
     allow_reuse_address = True

s = TCPServer(...)

> I acknowledge that I am trying to hack it rather then looking at all the  
> web 1st:
>  sorry if I am spamming this list while good documentation exists. But  
> does it?



The server classes support the following class variables:
Whether the server will allow the reuse of an address. This defaults to  
False, and can be set in subclasses to change the policy.

Reading the source may help too :)

Gabriel Genellina

More information about the Python-list mailing list