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

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

发布时间:2023-12-15 19:08:26

以下是一个示例的Python代码实现,用于随机生成一个可用的未被占用的端口号:

import socket
import random

def unused_port():
    while True:
        port = random.randint(1024, 65535)  # 随机生成一个端口号
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        # 创建一个TCP套接字并尝试绑定到指定端口
        result = sock.connect_ex(('localhost', port))
        sock.close()
        if result != 0:  # 如果端口号未被占用则返回
            return port

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

以上代码中,unused_port函数使用了random模块生成一个随机的端口号,然后通过创建一个TCP套接字并尝试绑定到该端口,通过connect_ex函数返回的结果来判断该端口是否被占用。如果端口未被占用,则返回该端口号;否则继续生成随机端口进行尝试。最终返回一个可用的未被占用的端口号。

使用例子中调用unused_port函数来获取一个可用的未被占用的端口号,并打印输出该端口号。

请注意,在上述例子中使用了localhost作为主机名,这意味着生成的端口号只在本地计算机上有效。如果需要在网络上可用的端口号,请将localhost替换为您实际要使用的主机名或IP地址。