基於Socket程式設計的互動式網路聊天室專案實戰

2021-09-26 15:58:53 字數 837 閱讀 9521

1.專案介紹

本專案通過 socket建立的可靠連線,讓多個終端可通過伺服器進行互動式通訊。

主要包含使用者註冊、私聊、群聊、退出四個功能。

使用技術:多執行緒、socket程式設計

開發環境:intellij idea

2.專案技術方案設計

2.2 客戶端模組

客戶端主要以命令列的互動式輸入輸出的方式給伺服器傳送註冊、群聊、私聊等執行訊息。該模組啟用了執行緒池,保證了執行緒的高併發性。當使用者進行註冊操作,建立soket,給伺服器傳送註冊執行訊息。使用者進行群聊操作,客戶端傳送和接收資料。使用者進行私聊操作,客戶端指定客戶端進行資料通訊。使用者退出的同時客戶端給伺服器傳送退出指令。

2.3 使用者註冊

使用者選擇註冊,在字元介面輸入 「register:使用者名稱」 格式進行註冊,註冊時,針對該賬號是否已經存在、輸入的使用者名稱格式是否符合格式要求。註冊成功的同時,伺服器會向所有客戶端傳送乙個該使用者註冊成功的訊息。

使用者退出

使用者選擇退出,在字元介面輸入 「bye」 退出聊天室

主要模組展示

3.專案測試用例

4.專案優化

可開發視覺化介面下的使用者註冊登入服務,並且使用資料庫進行資料儲存。提供使用者分組、好友列表和多型別檔案傳輸功能。

Python互動式程式設計

使用pip安裝notebook 在工作目錄下啟動notebook 安裝畫圖工具matplotlib測試 互動式程式設計不需要建立指令碼檔案,是通過 python 直譯器的互動模式進來編寫 linux上你只需要在命令列中輸入 python 命令即可啟動互動式程式設計 windows上在安裝python...

使用expect實現shell互動式程式設計

expect是乙個自動化互動套件,主要應用於執行命令和程式時,系統以互動形式要求輸入指定字串,實現互動通訊。expect自動互動流程 spawn啟動指定程序 expect獲取指定關鍵字 send向指定程式傳送指定字元 執行完成退出。expect常用命令總結 spawn 互動程式開始,後面跟命令或者指...

互動式系統中的排程

1.輪轉排程 每個程序被分配乙個時間段,稱為時間片 quantum 即允許該程序在該時間段中執行。如果在時間片結束時該程序還在執行,則將剝奪cpu並分配給另乙個程序。如果該程序在時間片結束前阻塞或結束,則cpu立即進行切換。時間片輪轉排程很容易實現,排程程式所要做的就是維護一張可執行程序列表,如圖2...