aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/test/src/lib/net.py
blob: 06bfda04facfffceaeb1375dd038380e3409f940 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Copyright (c) 2023 Egor Tensin <egor@tensin.name>
# This file is part of the "cimple" project.
# For details, see https://github.com/egor-tensin/cimple.
# Distributed under the MIT License.

from contextlib import closing
import socket


def random_unused_port():
    with closing(socket.socket(socket.AF_INET, socket.SOCK_STREAM)) as sock:
        sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        sock.bind(('0.0.0.0', 0))
        port = sock.getsockname()[1]
        return port