實 訓 報 告
課程名稱: 山寨版QQ
院 (系): 資訊科學與工程學院
專業班級: 計算機網絡專業08級2班
課程組長: 王二龍
課程成員: 展召振,于明闊
指導教師: 張曉諾
目 錄
1、課程設計概述2
2、課程設計題目描述2
3、系統需求分析與設計2
3.1 系統需求分析2
3.2 系統設計2
3.2.1 系統總體設計2
3.2.2 程式詳細設計3
4、系統測試和使用說明5
4.1 系統測試5
4.2 系統使用說明8
5、課程設計總結8
5.1 遇到的問題和解決方法8
5.2 心得體會9
多線程與C/S綜合應用——聊天系統
1、課程設計概述
我們的JAVA聊天系統于20年6月,持續時間為周。本次課程設計主要是利用所學的面向對象程式設計語言——JAVA來編寫程式,實作特定功能,以加深對的了解。
2、3、多線程功能:當用戶端要求與伺服器端建立連接配接時,伺服器端就将用到多線程功能,為每一個建立起來的連接配接建立一個線程。這不需要消息隊列,因為所有的線程都是相同的塊的一個部分,并且可以共享。這樣的程式比單線程模型和STA的執行速度都要因為降低了系統的負載,因而可以優化來減少系統時間ManageClientConServerThread類
ManageClientConServerThread類定義了用戶端與伺服器端保持通信的線程類,以及如何在進行資訊的交流。它用線程來實作,意味着它是獨立執行的。
ManageQqChat類
ManageQqChat類是管理使用者聊天界面的類,對使用者聊天界面的設計都可以通過此類實作,可以加載圖檔等等
ManageQqFriendList類
ManageQqFriendList類是一管理好友清單,界面和黑名單的類。在其中我們定義了一個私有的靜态變量!
QqClientCon類
這個類是用來設計用戶端連接配接伺服器背景的類,首先我們發送一個請求,然後進行身份驗證驗證成功的話,就開始啟動通信線程。
QqChat類
這是管理好友聊天界面的類,在這裡我們需要事件的監聽,并發生事件反應,是以我們使用了ActionListener。
QqClientLogin類
這個是使用者登陸界面的類,在其中可以定義北部,中部和南部需要的元件,以及進行監聽和處理。
伺服器端程式設計:
整合了三個JavaBeans類,對資訊進行處理
Message類
資訊内容儲存類,這是存儲資訊的公共類。
MessageType類
此類主要用來定義使用者收發資訊類型的類,通過此類可以改資訊的類型。
User類
這個主要是儲存使用者身份資訊的類。使用者輸入的身份資訊,通過此類進行存儲。
ManageClientThread 類
這個主要是管理使用者線程的類,在這裡進行使用者線程的處理。
MyQqServer這是伺服器類
剛開始他是出于監聽狀态,預設的是沒有啟動的,也就是沒有建立連接配接
當我們啟動伺服器他就開始建立連接配接。
SerConClientThread類
這是用戶端和伺服器通信的線程,用這個類說明了在一段時間内使用的線程。
MyServerFrame類
這是伺服器的控制界面,通過這個界面我們可以完成伺服器的啟動和關閉。
4、系統測試和使用說明
4.1 系統測試
使用JDK運作程式時,将Qqserver子目錄和 Qqclient子目錄下的程式都拷貝到目前目錄中,并将存放有背景的放到目前目錄中,
運作伺服器程式QqServer.jar,啟動伺服器端,視窗顯示如圖所示:
圖1 伺服器運作界面
點選啟動伺服器,伺服器開始啟動
運作第一個客戶程式,QqClient.jar執行後,windows視窗會顯示标題為山寨QQ的登入界面。如圖2所示:
圖2使用者登入界面
登陸成功以後現實 以使用者20為例 如圖3所示:
圖3客戶程式的運作界面
在兩個用戶端程式進行資訊的交流的時候。在這裡以使用者19和20為例如圖4所示
圖四
4.2 系統使用說明
在進行使用者登入之前,我們首先啟動伺服器,然後從用戶端進行登入,我們從中所使用的登入密碼是 123456 使用者名是1到50之間,由于我們的技術有限是以沒有設計資料庫。
5、課程設計總結
5.1 遇到的問題和解決方法心得Swing控件Swing控件
- 9 -