◐ Shell
clean mode source ↗

Issue 16594: SocketServer should set SO_REUSEPORT along with SO_REUSEADDR when present

On BSD (including Mac OS X) SO_REUSEPORT should be specified along with SO_REUSEADDR to match behavior on Linux (and possible Windows). This is needed to have multiple listeners to a UDP broadcast.

I discovered this when using PyOSC. Attached is an example modified to subclass SocketServer with a workaround. It should be possible to start multiple instances of this program, all of which will receive messages to a broadcast address (eg 255.255.255.255:7110).

This test uses Python 2.7 on OS X (despite the "python3" shebang line from the example)