Asked By – Anton L.
I’m trying to play with inter-process communication and since I could not figure out how to use named pipes under Windows I thought I’ll use network sockets. Everything happens locally. The server is able to launch slaves in a separate process and listens on some port. The slaves do their work and submit the result to the master. How do I figure out which port is available? I assume I cannot listen on port 80 or 21?
I’m using Python, if that cuts the choices down.
Now we will see solution for issue: On localhost, how do I pick a free port number?
Do not bind to a specific port. Instead, bind to port 0:
import socket sock = socket.socket() sock.bind(('', 0)) sock.getsockname()
The OS will then pick an available port for you. You can get the port that was chosen using
sock.getsockname(), and pass it on to the slaves so that they can connect back.
sock is the socket that you created, returned by