Python實現文字交談室

來源:互聯網
上載者:User

標籤: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實現文字交談室

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.