Message152696
> However, let me point out the following sentence:
> “Ports without SO_EXCLUSIVEADDRUSE set may be reused as soon as the socket on which bind was previously called is closed.”
>
> ...which seems to suggest we shouldn't use SO_REUSEADDR under Windows, since Windows sockets appear to have the Unix SO_REUSEADDR semantics by default.
Actually, it seems that even though the documentation doesn't mention
sockets in TIME_WAIT state, SO_REUSEADDR is actually required on
Windows:
http://twistedmatrix.com/trac/ticket/1151#comment:18
So the proper solution is the one adopted by support.bind_port(),
SO_REUSEADDR + SO_EXCLUSIVEADDRUSE.
Since Windows semantics is different (I'd rather say broken) and
SO_REUSEADDR is currently mis-used throughout the stdlib, what do you
think of adding a set_reuse() method to socket that would do the right
thing? |
|
Date |
User |
Action |
Args |
2012-02-05 16:55:02 | neologix | set | recipients:
+ neologix, pitrou, jnoller, news1234, BreamoreBoy, python-dev, gearb0x |
2012-02-05 16:55:02 | neologix | link | issue8184 messages |
2012-02-05 16:55:01 | neologix | create | |
|