地特三等申論題
112年
[資訊處理] 程式設計
第 四 題
針對下列 Python 程式碼,依序在兩個 Terminal 執行 server.py 和 client.py 後,在 client.py 輸入 Tom 和 quit;請說明 client.py 的 Terminal 之輸出內容,並說明 Line 03, 04, 05 程式碼的運作邏輯。(25 分)
(程式碼包含 server.py 的 Socket 監聽與 client.py 的連線發送邏輯)
(程式碼包含 server.py 的 Socket 監聽與 client.py 的連線發送邏輯)
📝 此題為申論題
思路引導 VIP
看到此題,應先辨識出這是 Python Socket 程式設計的經典 TCP Client-Server 架構題型。解題時需先在腦中模擬 TCP 通訊與迴圈控制流程,精準寫出終端機的輸入輸出交替結果;接著針對伺服器端初始化的關鍵三步驟(建立、綁定、監聽),以網路通訊底層概念解釋其物件導向與系統呼叫的意義。
🤖
AI 詳解
AI 專屬家教
【破題】本題測驗 Python Socket 模組中 TCP 連線的運作機制,重點在於客戶端與伺服器端的雙向訊息傳遞流程,以及伺服器端 Socket 初始化的關鍵步驟與生命週期管理。 【論述】 一、client.py 的 Terminal 輸出內容
▼ 還有更多解析內容
TCP Socket 程式設計
💡 掌握 TCP 伺服器建置三部曲與 Socket 連線生命週期管理。
🔗 TCP Server 通訊生命週期
- 1 socket() — 建立通訊端點,設定協定族群與類型。
- 2 bind() — 將 Socket 綁定至特定的 IP 與 Port。
- 3 listen() — 將主動模式轉為被動監聽,等待連線。
- 4 accept() — 接受請求,建立連線 Socket 並回傳。
- 5 recv / send — 進行資料交換(需注意編碼轉換)。
- 6 close() — 關閉連線,確保系統資源得以釋放。
↓
↓
↓
↓
↓
🔄 延伸學習:延伸學習:在高併發情境下,需結合多執行緒 (Threading) 或非同步 IO (Asyncio) 處理多個 client。