find_free_port at tip
Not logged in

File find_free_port from the latest check-in


#!/usr/bin/python3
"""
Script with tries to find free port to bind starting
with specified in the command line (or 5900) if none.
See manual page find_free_port(1)
"""
import sys
import socket
import errno

# pylint: disable=invalid-name
if len(sys.argv) > 1:
    port = int(sys.argv[1])
else:
    port = 5900

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
while True:
    try:
        s.bind(("", port))
    except socket.error as e:
        if e.errno == errno.EADDRINUSE:
            port += 1
            continue
        raise e
    break

s.close()
print(port)