This gist is deprecated and will not be edited in the future. Consider visit ninedraft/python-udp repo. It will not be deleted, however.
Works for python 3.7 and 2.7 for Mac OS and Linux(kernel>=3.9) hosts. If you'ra using linux(kernel<3.9), then use socket.O_REUSEADDR
instead of socket.SO_REUSEPORT
to share (host, port)
between multiple clients and servers.
Tricks and traps:
- Socket portability issues: How do SO_REUSEADDR and SO_REUSEPORT differ?;
- Awesome "Socket Programming HOWTO";
I'm actually doing this on macOS. I can post the full code snippets here if it helps. Though, looks like the main differences with the updated code up top are:
SO_REUSEADDR
.socket.IPPROTO_UDP
as the 3rd parameter to socket.socket() in client.py.