資源描述:
《面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)報告---網(wǎng)絡(luò)聊天工具》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、課程設(shè)計(jì)報告課程名稱:面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)任課教師:設(shè)計(jì)題目:網(wǎng)絡(luò)聊天工具所學(xué)專業(yè):信息管理與信息系統(tǒng)班級學(xué)號:學(xué)生姓名:報告完成日期:2012年01月10日11目錄目錄1一、項(xiàng)目目標(biāo)2二、功能描述31.服務(wù)器端功能32.客戶端功能3三、設(shè)計(jì)思路4(一)總體設(shè)計(jì)41.服務(wù)器端設(shè)計(jì)42.客戶端設(shè)計(jì)4(二)代碼思路51.定義服務(wù)端類CServer繼承Frame類52.定義CClient類繼承Frame類5四、具體設(shè)計(jì)7總結(jié)101111一、項(xiàng)目目標(biāo)實(shí)現(xiàn)基于C/S模式的聊天室程序。聊天室共分為服務(wù)器端和客戶端兩部分。11二、功能描述1.服務(wù)器端功能(1)提供多線程的聊天服務(wù)處理。(
2、2)在服務(wù)器端屏幕上提示客戶端進(jìn)入,顯示客戶端聊天內(nèi)容。(3)當(dāng)某客戶端輸入字符“quit”時斷開該客戶端的連接。2.客戶端功能(1)可以配置要連接服務(wù)器的IP地址和端口號。(2)配置用戶昵稱后連接。(3)可以向所有人發(fā)送消息。(4)顯示本聊天室中的該用戶登錄后的所有消息。(5)顯示在該用戶登錄之后登錄的用戶登錄信息。提供聊天服務(wù)處理提示客戶端進(jìn)入斷開客戶端連接顯示客戶端聊天內(nèi)容服務(wù)器端管理圖服務(wù)器端管理用例圖11三、設(shè)計(jì)思路(一)總體設(shè)計(jì)1.服務(wù)器端設(shè)計(jì)定義一個服務(wù)端類,實(shí)現(xiàn)服務(wù)器端功能。(1)定義內(nèi)部類,此內(nèi)部類采用多線程,實(shí)現(xiàn)多客戶端接入。(2)當(dāng)初始化界面時,啟動服務(wù)器
3、。(3)當(dāng)某客戶端輸入字符“quit”時斷開該客戶端的連接,關(guān)閉服務(wù)器窗口時關(guān)閉與客戶端的連接。(4)服務(wù)器接收客戶端信息,并把這些信息發(fā)送到連接服務(wù)器的客戶端。2.客戶端設(shè)計(jì)定義一個客戶端類,實(shí)現(xiàn)客戶端功能。(1)定義三個內(nèi)部類,以實(shí)現(xiàn)連接按鈕的監(jiān)聽、信息接收、對自己信息的監(jiān)聽。(2)定義輸入服務(wù)器的IP地址、端口號的控件和用戶昵稱,在連接時把這些信息傳給服務(wù)器。(3)發(fā)送消息時,通過對系統(tǒng)的監(jiān)聽顯示自己發(fā)送的消息,其他用戶發(fā)送的信息通過服務(wù)器轉(zhuǎn)發(fā)。編譯源程序運(yùn)行監(jiān)聽啟動服務(wù)器客戶端接入顯示消息發(fā)送信息退出系統(tǒng)圖C/S聊天室的活動圖11(二)代碼思路1.定義服務(wù)端類CServ
4、er繼承Frame類(1)定義兩個構(gòu)造方法,一個構(gòu)造方法實(shí)現(xiàn)客戶端不傳參數(shù)時服務(wù)器窗口標(biāo)題為空,另外一個構(gòu)造方法實(shí)現(xiàn)客戶端傳參數(shù)時服務(wù)器窗口標(biāo)題為此參數(shù)值。都要執(zhí)行窗口的初始化操作。(2)init()方法即窗口初始化方法,實(shí)現(xiàn)服務(wù)端界面,在界面中定義一個文本區(qū)域,設(shè)定窗口關(guān)閉時系統(tǒng)退出,并啟動服務(wù)器。(3)boradCast(Stringstr,Socketsocket)方法,即向所有在服務(wù)器中的客戶端廣播方法,有兩個參數(shù),一個傳遞只顯示的字符串,另一個傳遞套接字。該方法要判斷發(fā)送信息的用戶是否是自己。(4)startServer()方法,啟動服務(wù)方法。等待客戶端的請求,接收到
5、請求后,產(chǎn)生socket對象,交給多線程的聊天服務(wù)處理。(5)定義內(nèi)部類Service類,實(shí)現(xiàn)Runnable接口。有兩個屬性套接字socket和用戶名name。①定義兩個構(gòu)造方法,一個沒有參數(shù)實(shí)現(xiàn)為空,另一個以套接字socket作參數(shù),并獲取用戶名。②run()方法,沒有參數(shù)。當(dāng)用戶發(fā)送“quit”時,關(guān)閉客戶連接。用戶發(fā)送其他信息時廣播信息。(6)定義主方法,實(shí)例化CServer類。2.定義CClient類繼承Frame類(1)把界面組件定義為屬性,在init()方法中構(gòu)建界面,并調(diào)用與服務(wù)器連接的方法。(2)connect()方法實(shí)現(xiàn)與服務(wù)器的連接。(3)Recive()
6、方法實(shí)現(xiàn)接收服務(wù)器發(fā)送的信息。(4)sendName()方法實(shí)現(xiàn)向服務(wù)器發(fā)送用戶姓名。(5)定義內(nèi)部類connBttnListener,實(shí)現(xiàn)ActionLIstener。(6)定義內(nèi)部類Recive,實(shí)現(xiàn)線程。(7)定義內(nèi)部類MyListener,實(shí)現(xiàn)ActionLIstener。(8)定義close()方法,實(shí)現(xiàn)關(guān)閉輸出流,關(guān)閉套接字。(9)定義主方法,實(shí)例化CClient類。11CClienttextArea:TextAreatextField:TextFieldnickName:TextFieldaddress:TextFieldport:TextFieldsendBtt
7、n:ButtonconnBttn:Buttonpanel1:Panelpanel2:Panelsocket:SocketprintStream:PrintStreamCClient()CClient(String)init()connet()recive()sendName()Serversocket:Socketname:StringService(Socket)Service()run()CServertextArea:TextAreasocket:Socketsocket1:Socke