




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Java網(wǎng)絡(luò)程序設(shè)計(jì)大作業(yè)分組報(bào)名表項(xiàng)目名稱簡(jiǎn)易聊天應(yīng)用程序的設(shè)計(jì)與實(shí)現(xiàn)項(xiàng)目功能網(wǎng)絡(luò)聊天室通常直稱聊天室,是一種人們可以在線交談的網(wǎng)絡(luò)論壇,在同一聊天室的人們通過廣播消息進(jìn)行實(shí)時(shí)交談。運(yùn)用java程序編寫聊天室,實(shí)現(xiàn)簡(jiǎn)單的聊天功能。它是圖形界面,線程,流與文件系統(tǒng)等技術(shù)的綜合應(yīng)用。程序?qū)崿F(xiàn)了聊天室的基本功能,其中肩:1 .啟動(dòng)服務(wù)器。2 .啟動(dòng)登陸界面。3 .進(jìn)入客戶端界面。4 .發(fā)送信息。5 .離開客戶端界面。6 .關(guān)閉服務(wù)器。團(tuán)隊(duì)成員姓名性別年級(jí)院、系、專業(yè)學(xué)號(hào)備注計(jì)算機(jī)科學(xué)與技術(shù)計(jì)算機(jī)科學(xué)與技術(shù)計(jì)算機(jī)科學(xué)與技術(shù)計(jì)算機(jī)科學(xué)與技術(shù)指導(dǎo)教師姓名研究力向軟件設(shè)計(jì)職稱團(tuán)隊(duì)聯(lián)系方式聯(lián)系人姓名聯(lián)系電話
2、郵件地址郵編五、作品設(shè)計(jì)、實(shí)現(xiàn)難點(diǎn)分析團(tuán)隊(duì)介紹人員分工創(chuàng)作背景功能概要相關(guān)技術(shù)作品可行性分析功能性需求非功能性需求服務(wù)端界面實(shí)現(xiàn)客戶端界面實(shí)現(xiàn)登錄實(shí)現(xiàn)聊天功能實(shí)現(xiàn)退出功能實(shí)現(xiàn)難點(diǎn)分析解決方案測(cè)試結(jié)果錯(cuò)誤!未定義書簽。錯(cuò)誤!未定義書簽。錯(cuò)誤!未定義書簽。錯(cuò)誤!未定義書簽。錯(cuò)誤!未定義書簽。錯(cuò)誤!未定義書簽。錯(cuò)誤錯(cuò)誤錯(cuò)誤錯(cuò)誤錯(cuò)誤!未定義書簽。錯(cuò)誤!未定義書簽。錯(cuò)誤!未定義書簽。錯(cuò)誤!未定義書簽。錯(cuò)誤!未定義書簽。錯(cuò)誤!未定義書簽。錯(cuò)誤!未定義書簽。錯(cuò)誤!未定義書簽。錯(cuò)誤!未定義書簽。錯(cuò)誤!未定義書簽。錯(cuò)誤!未定義書簽。、團(tuán)隊(duì)介紹及人員分工團(tuán)隊(duì)介紹吳益帆:有良好的統(tǒng)籌能力和領(lǐng)導(dǎo)力,能合理安排各組員工
3、作。張咪:踏實(shí)耐心,有良好的創(chuàng)新能力和策劃能力。沈丹丹:勤奮刻苦、有鉆研精神,對(duì)待編程工作熱情細(xì)心,孜孜不倦。吳曉曉:對(duì)待工作細(xì)致專注,設(shè)計(jì)能力較強(qiáng)。團(tuán)隊(duì)成員之間有較好的默契度及協(xié)作性。分工明確,各司其職,在共同的努力及相互的配合下,共同解決程序中出現(xiàn)的困難并盡可能的優(yōu)化程序,最終完成整個(gè)項(xiàng)目。人員分工吳益帆:負(fù)責(zé)程序最后的整理,完成部分功能及錯(cuò)誤的處理。張咪:負(fù)責(zé)程序的編碼部分及項(xiàng)目具體功能的實(shí)現(xiàn)。沈丹丹:負(fù)責(zé)程序的界面部分,為改程序搜索解決的方案。吳曉曉:負(fù)責(zé)程序的策劃部分,項(xiàng)目的可行性分析及文檔的編寫工作。二、作品概述創(chuàng)作背景網(wǎng)絡(luò)聊天室通常直稱聊天室,是一種人們可以在線交談的網(wǎng)絡(luò)論壇,在
4、同一聊天室的人們通過廣播消息進(jìn)行實(shí)時(shí)交談。在當(dāng)今信息時(shí)代,越來越多的聊天工具被應(yīng)用,java語言是當(dāng)今流行的網(wǎng)絡(luò)編程語言,它具有面向?qū)ο螅c平臺(tái)無關(guān),安全,多線程等特點(diǎn)。使用java語言不僅可以實(shí)現(xiàn)大型企業(yè)級(jí)的分布式應(yīng)用系統(tǒng),還能夠?yàn)樾⌒偷牡?,嵌入式設(shè)備進(jìn)行應(yīng)用程序的開發(fā)。面向?qū)ο蟮拈_發(fā)是當(dāng)今世界最流行的開發(fā)方法,它不僅具有更貼近自然地語義,而且有利于軟件的維護(hù)和繼承,鍛煉我們熟練地應(yīng)用面向?qū)ο蟮乃枷牒驮O(shè)計(jì)方法解決實(shí)際問題的能力。功能概要運(yùn)用java程序編寫聊天室,實(shí)現(xiàn)簡(jiǎn)單的聊天功能。它是圖形界面,線程,流與文件系統(tǒng)等技術(shù)的綜合應(yīng)用。其界面主要采用了包,包等。程序?qū)崿F(xiàn)了聊天室的基本功能,其中有
5、:(1) 服務(wù)器端功能描述:?jiǎn)?dòng)服務(wù)器端:點(diǎn)擊“開啟”按鈕,啟動(dòng)服務(wù);端口服務(wù):輸入服務(wù)器的某個(gè)端口號(hào),開啟服務(wù)器的這個(gè)端口;顯示在線用戶信息:在右邊的用戶列表顯示所有在線的用戶信息;顯示用戶聊天信息:在左邊的聊天信息區(qū)域內(nèi)顯示所有用戶所發(fā)的信息;服務(wù)端關(guān)閉:點(diǎn)擊“關(guān)閉按鈕,關(guān)閉服務(wù)。(2) 客戶端功能描述:?jiǎn)?dòng)客戶端:運(yùn)行客戶端程序,啟動(dòng)客戶端;選擇服務(wù)器端口號(hào):輸入想要連接的服務(wù)器的端口號(hào);用戶登錄:填入用戶名,點(diǎn)擊“登錄”按鈕,連接相應(yīng)服務(wù)器;顯示在線用戶:在右邊的用戶列表中可以看到當(dāng)前在線的用戶;發(fā)送/接受聊天消息:在下面的文本輸入?yún)^(qū)域輸入要發(fā)送的內(nèi)容,點(diǎn)擊發(fā)送可以在左邊的聊天信息區(qū)域
6、內(nèi)顯示自己以及其他用戶所發(fā)的信息;用戶離線:點(diǎn)擊“離線”按鈕,與服務(wù)器斷開連接;客戶端關(guān)閉:關(guān)閉客戶端圖形用戶界面,關(guān)閉客戶端。相關(guān)技術(shù)(1) Java概述JAVA語言有下面一些特點(diǎn):簡(jiǎn)單、面向?qū)ο?、分布式、解釋?zhí)行、魯棒、安全、體系結(jié)構(gòu)中立、可移植、高性能、多線程以及動(dòng)態(tài)性。豐富的類庫JAVA提供了大量的類以滿足網(wǎng)絡(luò)化、多線程、面向?qū)ο笙到y(tǒng)的需要。語言包提供的支持包括字符串處理、多線程處理、數(shù)學(xué)函數(shù)處理等,可以用它簡(jiǎn)單地實(shí)現(xiàn)JAVA程序的運(yùn)行平臺(tái)。實(shí)用程序包提供的支持包括哈希表、堆棧、可變數(shù)組、時(shí)間和日期等。輸入輸出包用統(tǒng)一的"流"模型來實(shí)現(xiàn)所有格式的I/O,包括文件系統(tǒng)
7、、網(wǎng)絡(luò)、輸入低級(jí)網(wǎng)絡(luò)包用于實(shí)現(xiàn)Socket編程。抽象圖形用戶接口包實(shí)現(xiàn)了不同平臺(tái)的計(jì)算機(jī)的圖形用戶接口部件,包括窗口、菜單、滾動(dòng)條、對(duì)話框等,使得JAVA可以移植到不同平臺(tái)的機(jī)器。網(wǎng)絡(luò)包支持Internet的TCP/IP協(xié)議,提供了與Internet的接口。它支持URL®接,WWW:即時(shí)訪問,并且簡(jiǎn)化了用戶/服務(wù)器模型的程序設(shè)計(jì)。(2) 套接字Socket,簡(jiǎn)稱套接字,用于實(shí)現(xiàn)網(wǎng)絡(luò)上客戶和服務(wù)器之間的連接。也就是說網(wǎng)絡(luò)上兩個(gè)或兩個(gè)以上雙工方式通信的進(jìn)程之間總有一個(gè)連接,這個(gè)連接的端點(diǎn)成為套接字,套接字是在比較低的層次上通信的。具體的說:一個(gè)服務(wù)器應(yīng)用程序一般偵聽一個(gè)特定的端口等待客戶
8、端的連接請(qǐng)求,當(dāng)一個(gè)連接請(qǐng)求到達(dá)時(shí),客戶端和服武器端建立一個(gè)通信連接,在連接過程中,客戶端被分配一個(gè)本地端口與一個(gè)Socket建立連接,客戶端通過寫Socket來通知服務(wù)器,以讀Socket中的信息,類似的服務(wù)器也獲得一個(gè)本地端口,它需要一個(gè)新的端口號(hào)來偵聽原始端口上的其他連接請(qǐng)求。服務(wù)器也通過它的本地端口連接一個(gè)Socket,通過讀寫和客戶端通信。Socket程序的工作過程:1. 建立Socket連接:在通信開始之前由通信雙方確認(rèn)身份,建立一條專用的虛擬連接道。2. 數(shù)據(jù)通信:利用虛擬連接通道傳送數(shù)據(jù)信息進(jìn)行通信。3. 關(guān)閉:通信結(jié)束時(shí),再將所建的虛擬連接拆除。作品可行性分析由于本軟件知識(shí)一
9、個(gè)聊天程序,程序只提供用戶之間的聊天功能,故對(duì)網(wǎng)絡(luò)傳輸數(shù)據(jù)要求不是很高,只要正常的傳輸速度就可以了。三、需求分析功能性需求本聊天室分為聊天室服務(wù)端和聊天室客戶端,服務(wù)端與客戶端之間通過套接字Socket(TCP)連接。在java中使用套接字相當(dāng)簡(jiǎn)單,JavaAPI為處理套接口的通信提供了一個(gè)類使得編寫網(wǎng)絡(luò)應(yīng)用程序相對(duì)容易服務(wù)器采用多線程以滿足多用戶的請(qǐng)求,并通過創(chuàng)建一個(gè)ServerSocket對(duì)象來監(jiān)聽來自客戶的連接請(qǐng)求,默認(rèn)IP地址為:localhost默認(rèn)端口為8888。(1) 聊天室服務(wù)端模塊,包括端口服務(wù)、啟動(dòng)服務(wù)、關(guān)閉服務(wù)、顯示在線用戶、顯示用戶聊天信息,如圖所示;圖聊天室服務(wù)端模塊
10、圖端口服務(wù):輸入要偵聽的端口,默認(rèn)為8888;啟動(dòng)服務(wù):?jiǎn)?dòng)服務(wù)器,并開始在設(shè)置的端口中偵聽,客戶端用戶可以登錄并開始聊天;關(guān)閉服務(wù):關(guān)閉服務(wù)器,偵聽結(jié)束??蛻舳擞脩舨荒茉倭奶?;顯示在線用戶:服務(wù)器列表顯示在線用戶數(shù)和所有在線用戶名稱;顯示用戶聊天信息:在文本區(qū)中顯示所有用戶聊天信息和登錄、退出信息。(2) 聊天室客戶端模塊,包括用戶登錄、用戶離線、連接設(shè)置、發(fā)送和接收聊天信息、顯示在線用戶、退出,如圖所示:圖聊天室客戶端模塊圖用戶登錄:只能在聊天室服務(wù)端已開啟的情況下,用戶點(diǎn)擊“按鈕”才能登錄,用戶登錄之后才能開始聊天,登錄后不能再修改用戶設(shè)置和連接設(shè)置;用戶離線:用戶點(diǎn)擊“離線”按鈕,退出
11、聊天,與服務(wù)器斷開連接;連接設(shè)置:用戶可以設(shè)置自己連接的服務(wù)器的IP地址和端口號(hào),默認(rèn)的連接地址為:localhost:8888;發(fā)送和接收聊天信息:用戶可以給所有人發(fā)送信息,并能看到其他用戶發(fā)送給所有人的消息;顯示在線用戶:服務(wù)器列表顯示在線用戶數(shù)和所有在線用戶名稱;退出:關(guān)閉所有聊天并退出客戶端。(3) 程序流程:首先啟動(dòng)服務(wù)器,用戶打開客戶端,輸入服務(wù)器端口號(hào),再輸入用戶名就可以登錄,登錄以后會(huì)顯示當(dāng)前在線的用戶信息,用戶可以看到其他用戶所發(fā)的信息,自己也可以發(fā)送信息。用戶點(diǎn)擊離線就會(huì)與服務(wù)器斷開連接,最后關(guān)閉服務(wù)器,如圖所示:圖程序流程圖非功能性需求(1) 安全需求本程序能防衛(wèi)禁止未登
12、錄用戶進(jìn)行通信,防止數(shù)據(jù)丟失,需要輸入用戶名、端口號(hào)連接相應(yīng)的服務(wù)器才允許用戶間的通信。(2) 性能需求本程序使用的對(duì)象是所有運(yùn)行該程序的用戶,用戶在連接服務(wù)器可以進(jìn)行客戶端之間的通信。(3) 易用性需求本程序的使用對(duì)象計(jì)算機(jī)水平一般,有一定的易用性上的要求,程序應(yīng)當(dāng)存在著一些友好性的提示,提高程序的友好度。(4) 可維護(hù)性需求本程序能夠及時(shí)發(fā)現(xiàn)并糾正系統(tǒng)故障,對(duì)系統(tǒng)數(shù)據(jù)進(jìn)行備份,有系統(tǒng)還原功能。(5) 健壯性需求本程序在遭遇非法輸入數(shù)據(jù),能夠排除該數(shù)據(jù)并繼續(xù)運(yùn)行;對(duì)于系統(tǒng)異常有完備的預(yù)警預(yù)防處理機(jī)制。四、作品實(shí)現(xiàn)服務(wù)端界面實(shí)現(xiàn)在服務(wù)端啟動(dòng)后,要顯示“簡(jiǎn)易聊天室服務(wù)器”的圖形用戶界面,如圖所示
13、:圖服務(wù)端圖形用戶界面“簡(jiǎn)易聊天室服務(wù)器”的圖形用戶界面實(shí)現(xiàn)的主要代碼如下:private private private private private private private privateLabelsvrIP=newLabel("服務(wù)器IP:");TextFieldshowSvrIP=newTextField();LabelsvrPort=newLabel("服務(wù)器端口:");TextFieldgetSvrPort=newTextField("8888");Buttonenter=newButton("啟動(dòng)&q
14、uot;);TextAreaoutput=newTextArea();Labeluser=newLabel("當(dāng)前在線用戶(0)");Listlist=newList();privatevoidsetup()Paneltop=newPanel();(newFlowLayout();(svrIP);(bg);(showSvrIP);(bg);(svrPort);(bg);(getSvrPort);(bg);(enter);(bg);Paneleast=newPanel();(newBorderLayout();("North",user);(bg);(&q
15、uot;Center",list);(bg);setLayout(newBorderLayout();add("North",top);(bg);add("East",east);(bg);add("Center",output);(bg);setBackground(bg);點(diǎn)擊“啟動(dòng)”按鈕,開啟默認(rèn)的服務(wù)器888端口,如圖所示:圖服務(wù)端端口開啟8888端口開啟實(shí)現(xiàn)代碼如下:tryserver=newServerSocket(getSvrPort.getText();rightNow=().getTime().toLoca
16、leString();(rightNow+"n開啟服務(wù)器.nn");("關(guān)閉");ht=newHashtable();ht_s=newHashtable();st=newServerThread();serving=true;catch(IOExceptionioe)("Error:"+ioe+"n'n");客戶端界面實(shí)現(xiàn)在客戶端啟動(dòng)后,顯示“簡(jiǎn)易聊天室客戶端”的圖形用戶界面,如圖所示:圖客戶端圖形用戶界面“簡(jiǎn)易聊天室客戶端”的圖形用戶界面實(shí)現(xiàn)的主要代碼如下:privateButtonB_login=new
17、Button("登陸");privateButtonB_logout=newButton("離線");privateButtonB_send=newButton("發(fā)送");privateLabeluserName=newLabel("您的用戶名:");privateTextFieldgetUserName=newTextField();etTime().toLocaleString();(rightNow+"n登錄失敗請(qǐng)使用合法用戶名.nn");if(accepted)rightNow=().
18、getTime().toLocaleString();(rightNow+"n您已成功登陸.nn");login=true;圖服務(wù)端顯示用戶服務(wù)端向在線用戶發(fā)送當(dāng)前在線用戶列表代碼實(shí)現(xiàn)如下:login=true;(userName);("User("+()+")");String口str=();line="A"etTime().toLocaleString();.(rightNow+"n"+userName+"登陸.n'n");客戶端獲取當(dāng)前在線用戶列表代碼實(shí)現(xiàn)如下:
19、String口str=("");for(inti=1;i<i+)(stri);("當(dāng)前在線用戶("+()+")");聊天功能實(shí)現(xiàn)開啟多個(gè)客戶端,并登錄。在輸入框中輸入信息,點(diǎn)擊“發(fā)送”,數(shù)據(jù)傳送至服務(wù)端(如圖所示),再由服務(wù)端數(shù)據(jù)發(fā)送給其他客戶端。每個(gè)客戶端都接收服務(wù)端發(fā)送過來的數(shù)據(jù),并顯示在消息框中,如圖所示。圖服務(wù)端顯示消息用戶發(fā)送消息代碼實(shí)現(xiàn)如下:privatevoidsendMsg()if(!login)return;tryif().equals("")("n發(fā)送內(nèi)容不能為空請(qǐng)重新輸入nn");return;("M"+();("");catch(IOExceptionioe)("Error:"+ioe+"n'n"
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子商務(wù)周例會(huì)分析流程
- 職工心理健康提升培訓(xùn)心得體會(huì)
- 工業(yè)廠房施工進(jìn)度計(jì)劃及材料保障措施
- 礦山機(jī)械維護(hù)保養(yǎng)服務(wù)方案計(jì)劃
- 語文培優(yōu)生課題研究思路及措施
- 生態(tài)修復(fù)施工措施計(jì)劃
- 教師團(tuán)隊(duì)合作強(qiáng)化計(jì)劃
- 成人教育網(wǎng)上教學(xué)專題培訓(xùn)心得體會(huì)
- 2025年度酒店銷售部渠道管理計(jì)劃
- 六年級(jí)線上體育技能提升計(jì)劃
- GB/T 3323.1-2019焊縫無損檢測(cè)射線檢測(cè)第1部分:X和伽瑪射線的膠片技術(shù)
- BD每月績(jī)效考核表
- 大局意識(shí)方面存在的問題及整改措施范文三篇
- 圍手術(shù)期呼吸道管理
- MES基本概念及MES系統(tǒng)解決方案
- 后進(jìn)生轉(zhuǎn)化情況記錄表2
- 9.幼兒園小班第一學(xué)期班級(jí)計(jì)劃
- 物體打擊應(yīng)急預(yù)案演練總結(jié)
- 《海水工廠化養(yǎng)殖尾水處理技術(shù)規(guī)范》標(biāo)準(zhǔn)及編制說明
- 門式腳手架專項(xiàng)施工方案完成
- 第6章_懸移質(zhì)泥沙運(yùn)動(dòng)2014
評(píng)論
0/150
提交評(píng)論