Python TCP 套接字; 帶註釋的簡單伺服器和客戶端示例

這是兩個協同工作的示例程式。一個是簡單的伺服器,另一個是簡單的客戶端。在一個視窗中啟動伺服器:

python tserver.py

如果需要,編輯客戶端原始檔中的伺服器地址。然後跑

python tclient.py

客戶端連線到伺服器,然後從控制檯請求輸入,然後將其傳送到伺服器。對於每個接收到的緩衝區,伺服器會預先新增一些預設資訊並將其傳送回客戶端。

我已經解決了在 python2 和 python3 之間移植程式碼時出現的某些陷阱 - 特別是位元組與字串差異。對此的完整解釋將需要大量的空間並分散注意力。

注意事項:

特別是,伺服器示例側重於伺服器將執行的 socket 操作,但為了清楚起見序列化。因此,它一次只接受一個連線。 真正的程式要麼分叉一個新程序來處理每個連線,要麼使用 select 一次處理多個連線。

真正的程式將處理各種套接字呼叫中的異常,並優雅地恢復或退出。

真正的程式需要擔心訊息邊界(因為 TCP 不尊重這些邊界)。由於這些程式在使用者輸入觸發的時間傳送單個緩衝區,因此已被忽略。