Son aktivite 3 months ago

此程式碼定義了一個函數 find_free_port(),使用 socket 建立一個暫時的連接來查找可用的端口號,並返回該端口號。主程式中示範了如何在 Flask 應用中使用此函數以隨機分配可用端口來運行應用。

find_free_port.py Ham
1import socket
2from contextlib import closing
3
4def find_free_port():
5 # 建立一個暫時的 socket 來偵測可用的 port
6 with closing(socket.socket(socket.AF_INET, socket.SOCK_STREAM)) as s:
7 # bind 到 0 表示讓系統隨機分配一個可用的 port
8 s.bind(('', 0))
9 s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
10 # 回傳那個被分配到的 port 號
11 return s.getsockname()[1]
12
13# --- 在你的 Flask App 中可以這樣用 ---
14if __name__ == '__main__':
15 free_port = find_free_port()
16 print(f"找到一個可用的 port: {free_port}")
17 app.run(host='0.0.0.0', port=free_port)