Java聊天室程式原始碼
2 需求分析
2.1 業務需求
1. 與聊天室成員一起聊天。
2. 可以與聊天室成員私聊。
3. 可以改變聊天內容風格。
4. 用戶註冊(含頭像)、登入。
5. 伺服器監控聊天內容。
6. 伺服器過濾非法內容。
7. 伺服器發送通知。
8. 伺服器踢人。
9. 保存伺服器日誌。
10.保存用戶聊天資訊。
2.2 系統功能模組
2.2.1 伺服器端
1.處理用戶註冊
2.處理用戶登入
3.處理用戶發送訊息
4.處理用戶得到訊息
5.處理用戶退出
2.2.2 客戶端
1.用戶註冊介面及結果
2.使用者登入介面及結果
3.用戶發送訊息介面及結果
4.使用者得到資訊介面及結果
5.用戶退出介面及結果
2.3 效能需求運作環境:Windows 9x、2000、xp、2003,Linux
必要環境:JDK 1.5 以上硬體環境:CPU 400MHz以上,記憶體64MB以上
3.1.2 客戶端結構
ChatClient.java 為客戶端程式啟動類別,負責客戶端的啟動和退出。
Login.java 為用戶端程式登入介面,負責使用者帳號資訊的驗證與回饋。
Register.java 為用戶端程式註冊介面,負責使用者帳號資訊的註冊驗證與回饋。
ChatRoom.java 為客戶程式聊天室主介面,負責接收、傳送聊天內容與伺服器端的Connection.java 親密合作。
Windowclose 為ChatRoom.java的內部類別,負責監聽聊天室介面的操作,當使用者退出時傳回伺服器資訊。
Clock.java 為客戶端程式的一個小程序,實作的一個石英鐘功能。
3. 2 系統實現原理
當使用者聊天時,將當前使用者名稱、聊天物件、聊天內容、聊天語氣和是否私聊進行封裝,然後與伺服器建立Socket連接,再用物件輸出流包裝Socket的輸出流將聊天資訊物件傳送給伺服器端當使用者傳送聊天訊息時,服務端將會收到客戶端用Socket傳送過來的聊天訊息對象,然後強制轉換為Chat對象,並將本次使用者的聊天訊息物件加入聊天對象集Message中,以供所有聊天用戶存取。
接收使用者的聊天資訊是由多執行緒技術實現的,因為客戶端必須時時關注更新伺服器上是否有最新訊息,在本程式中設定的是3秒刷新伺服器一次,如果間隔時間太短將會增加客戶端與伺服器端的通訊負擔,而間隔時間長就會讓人感覺沒有時效性,所以經過權衡後認為3秒最佳,因為每個使用者都不可能在3秒內連續發送訊息。
當每次使用者接收到聊天訊息後將會開始分析聊天訊息然後將適合自己的訊息人性化地顯示在聊天訊息介面上。
4.1.1 問題陳述
1.接受使用者註冊資訊並保存在一個基於檔案的物件型資料庫。
2.能夠允許註冊過的使用者登陸聊天介面並且可以聊天。
3.能夠接受私聊訊息並發送給特定的使用者。
4.伺服器運行在自訂的連接埠上#1001。
5.伺服器監控使用者清單和使用者聊天資訊(私聊除外)。
6.伺服器踢人,發送通知。
7.伺服器保存日誌。
結論本文討論如何利用java技術開發聊天室系統,基本滿足了結構化、介面友善、速度快、安全性以及穩定性等特點。
系統著重研究並實現了網路應用的部分。根據實現的情況來看,具有較友善的聊天介面產生效果,以及流暢的網路通訊效果。生成的聊天室可以達到基本的聊天要求,並且具有較高的研究價值。
系統具有目前聊天室的基本功能:包括支援多種頭像,字色,語氣選擇,支援emote,支援私聊,支援線上聊友查找,支援分割畫面顯示,支援使用者自訂自己的私人頭像,支援髒話過濾,支援嘉賓聊天。屏蔽掉自己討厭的人物,可以傳公開訊息給所有聊友。具有速度快,高穩定性,佔用系統資源少,使用者介面友善等特點。
透過畢業設計,發現自己在理論研究和實際工作能力等方面都得到了提高,受益匪淺。同時在老師的指導和課題組同學的共同幫助下,及時總結研究成果,這些無疑會對我今後的工作和學習帶來很大的幫助。
展開