欢迎访问宙启技术站
智能推送

Python代码示例:生成可用的未占用端口号(unused_port())

发布时间:2023-12-15 19:05:44

下面是一个Python代码示例,可以生成可用的未占用端口号。

import socket

def unused_port():
    """生成未占用的端口号"""
    
    # 创建一个临时的socket对象
    temp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

    # 设置socket选项,使得端口释放后可以立即被重用
    temp_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

    # 绑定一个临时的地址和端口号
    temp_socket.bind(('localhost', 0))

    # 获取绑定之后的端口号
    unused_port = temp_socket.getsockname()[1]

    # 关闭socket
    temp_socket.close()

    return unused_port

# 使用示例
port = unused_port()
print(f"生成的可用端口号是:{port}")

这个代码中,首先创建了一个临时的socket对象,并设置了socket选项,使得端口释放后可以立即被重用。然后,绑定一个临时的地址和端口号,调用getsockname方法获取绑定之后的端口号,并将其保存到变量unused_port中。最后,关闭socket,并返回端口号。

在使用示例中,调用unused_port函数获取一个可用端口号,并打印输出。你可以根据需要调用unused_port函数获取多个可用端口号。