Python TCP 套接字; 帶註釋的簡單伺服器和客戶端示例
這是兩個協同工作的示例程式。一個是簡單的伺服器,另一個是簡單的客戶端。在一個視窗中啟動伺服器:
python tserver.py
如果需要,編輯客戶端原始檔中的伺服器地址。然後跑
python tclient.py
客戶端連線到伺服器,然後從控制檯請求輸入,然後將其傳送到伺服器。對於每個接收到的緩衝區,伺服器會預先新增一些預設資訊並將其傳送回客戶端。
我已經解決了在 python2 和 python3 之間移植程式碼時出現的某些陷阱 - 特別是位元組與字串差異。對此的完整解釋將需要大量的空間並分散注意力。
注意事項:
特別是,伺服器示例側重於伺服器將執行的 socket
操作,但為了清楚起見序列化。因此,它一次只接受一個連線。 真正的程式要麼分叉一個新程序來處理每個連線,要麼使用 select
一次處理多個連線。
真正的程式將處理各種套接字呼叫中的異常,並優雅地恢復或退出。
真正的程式需要擔心訊息邊界(因為 TCP 不尊重這些邊界)。由於這些程式在使用者輸入觸發的時間傳送單個緩衝區,因此已被忽略。