標籤:pat 編程 ima 用戶端 登陸 解釋 教程 out 文本
你是否想過用所學的Python開發一個圖形介面的聊天室程式啊?
像這樣的:
如果你想開發這樣一個有點懷舊風格的聊天程式,那麼可以接著看;
要開發這個聊天程式,你需要具備以下知識點:
- asyncore 、asynchat模組使用
- wxPython 圖形開發
這個聊天程式的實驗原理如下:
由於 Python 是一門帶 GIL 的語言,所以在 Python 中使用多執行緒IO操作過多的任務並不是很好的選擇。同時聊天伺服器將同多個 socket 進行通訊,所以我們可以基於 asyncore 模組實現聊天伺服器。
aysncore 模組是一個非同步 socket 處理器,通過使用該模組將大大簡化非同步編程的難度。asynchat 模組在 asyncore 模組的基礎上做了進一步封裝,簡化了基於文本協議的忘了通訊任務的開發難度。
既然要開發聊天程式,那必然需要設計聊天時使用的協議。為了簡單起見,我們將要開發的聊天伺服器只支援文本協議,通過command message的方式調用相關的操作。比如如果用戶端發送以下文本,將執行相應的操作
# 登入操作login\n# 在聊天室中發表 hello 內容say hello\n# 查看聊天室線上使用者look\n# 退出登入logout\n
以上協議流中,login, say, look, logout 就是相關協議代碼。
開發步驟如下:
- 1、伺服器類:一個聊天伺服器類,通過繼承 asyncore 的 dispatcher 類來實現;
- 2、 會話類:有了伺服器類還需要能維護每個使用者的串連會話,這裡繼承 asynchat 的
async_chat 類來實現;
- 3、協議命令直譯器:聊天伺服器的協議,具體來說就是處理使用者登入,退出,發訊息,查詢線上使用者的代碼;
- 4、房間:實現聊天室的房間了,這裡我們定義了三種房間,分別是使用者剛登入時的房間、聊天的房間和退出登入的房間;
- 5、登陸視窗:實現用戶端了;
- 6、聊天視窗:聊天視窗中最主要的就是向伺服器發訊息並接受伺服器的訊息;
嗯,什嗎?光看這個原理和開發步驟還是不會具體的開發,不會寫代碼?那我給你詳細的開發教程,看嗎?!
【python 實現文字交談室】
這個教程詳細的介紹了開發步驟和開發代碼,帶你一步一步的實現這個文字交談室,而且還有線上開發環境,你可以跟著動手去操作哦;
Python實現文字交談室