Java大作業(yè)文檔 (一)_第1頁(yè)
Java大作業(yè)文檔 (一)_第2頁(yè)
Java大作業(yè)文檔 (一)_第3頁(yè)
Java大作業(yè)文檔 (一)_第4頁(yè)
Java大作業(yè)文檔 (一)_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

閑聊室

一、引言

本文圍繞Java編程語(yǔ)言在網(wǎng)絡(luò)編程方面的詳細(xì)應(yīng)用,論述了運(yùn)用面對(duì)對(duì)象

方法,對(duì)計(jì)算器程序進(jìn)展需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì),最終運(yùn)用Java編程

實(shí)現(xiàn)的全過(guò)程。在編程我們運(yùn)用的java語(yǔ)言,是目前比擬流行的編程語(yǔ)言。在

當(dāng)今這個(gè)網(wǎng)絡(luò)的時(shí)代,java語(yǔ)言在網(wǎng)絡(luò)編程方面的優(yōu)勢(shì)使得網(wǎng)絡(luò)編程有了更好

的選擇。Java語(yǔ)言最大的特點(diǎn)是具有跨平臺(tái)性,使其不受平臺(tái)不同的影響,得

到了廣泛的應(yīng)用。

二、需求分析

2.1開發(fā)背景:

在網(wǎng)絡(luò)越來(lái)越興盛的今日,人們對(duì)網(wǎng)絡(luò)的依靠越來(lái)越多,越來(lái)越離不開網(wǎng)絡(luò),由此

而產(chǎn)生的閑聊工具越來(lái)越多,網(wǎng)絡(luò)閑聊時(shí)一類的閑聊系統(tǒng)的開展日新月異,因此

產(chǎn)生了制作一個(gè)局域網(wǎng)的網(wǎng)絡(luò)閑聊工具的;而且通過(guò)制作該程序還能更好的學(xué)習(xí)

網(wǎng)絡(luò)軟件編程學(xué)問(wèn).

2.2功能要求:

i.找尋效勞器登錄

ii.注冊(cè)帳號(hào)

iii.能夠?qū)崿F(xiàn)點(diǎn)對(duì)點(diǎn)單聊

iv.能夠?qū)崿F(xiàn)群聊

v.能動(dòng)態(tài)更新在線用戶列表

vi.文件傳輸

三、系統(tǒng)設(shè)計(jì)

設(shè)計(jì)思想

整個(gè)系統(tǒng)分為效勞器和客戶端,效勞器端維護(hù)各個(gè)客戶端的信息??蛻舳说?/p>

全部信息發(fā)往效勞器端,再由效勞器進(jìn)展消息的分析處理并做出相應(yīng)的限制,效

勞器端是全部信息的中心,

效勞器端可以查看全部用戶的閑聊記錄,監(jiān)控全部用戶的狀態(tài),發(fā)出用戶上

線、離線提示等公告,客戶端那么供應(yīng)接收公告的功能。

本課程設(shè)計(jì)依據(jù)系統(tǒng)的詳細(xì)功能要求,首先應(yīng)用Socket編程創(chuàng)立客戶端和

效勞器端,每多個(gè)客戶端效勞器端就會(huì)相因的創(chuàng)立一個(gè)線程,它們之間通過(guò)這個(gè)

連接來(lái)實(shí)現(xiàn)數(shù)據(jù)通信;然后在客戶端設(shè)置一個(gè)監(jiān)聽(tīng)器,用于監(jiān)聽(tīng)效勞器發(fā)來(lái)的消

息。并依據(jù)消息做出不同的動(dòng)作。

系統(tǒng)功能

該系統(tǒng)實(shí)現(xiàn)了用戶之間的點(diǎn)對(duì)點(diǎn)單人閑聊,在線用戶之間的群聊。為了加強(qiáng)

之間的信息溝通,還實(shí)現(xiàn)了用戶之間文件傳輸、語(yǔ)音閑聊.在客戶端和效勞器端

都可以查看歷史消息、保存消息、清空消息。為了監(jiān)控用戶之間的狀態(tài),效勞器

還可以實(shí)現(xiàn)踢掉用戶的功能,同時(shí)用戶時(shí)間文件傳輸?shù)男畔⒍紩?huì)在效勞器上顯

/J\o

系統(tǒng)架構(gòu)

1)選擇傳輸限制協(xié)議TCP,運(yùn)用Java的Socket編程機(jī)制,分別建立客戶端

與效勞器端、語(yǔ)音傳輸運(yùn)用的是UDP限制協(xié)議;

2)分別設(shè)計(jì)客戶端與效勞器端的界面,并運(yùn)用Java應(yīng)用程序用戶界面的開

發(fā)工具包Swing進(jìn)展窗體界面的布局,以及實(shí)現(xiàn)局部商口事務(wù)的相應(yīng)。

3.4模塊設(shè)計(jì)

效勞器端:

主要實(shí)現(xiàn)向各個(gè)客戶端發(fā)布系統(tǒng)消息,承受來(lái)自客戶端的各種信息并分別處

理。詳細(xì)功能如下:

①連接限制:包括啟動(dòng)效勞器、斷開效勞器以及斷開某個(gè)客戶端的連接;

②管理作用:包括對(duì)參與閑聊者的昵稱進(jìn)展修改以及向全部或某個(gè)客戶

端發(fā)送消息.,維護(hù)一個(gè)IP地址和昵稱所對(duì)應(yīng)的哈希表,以

便定位到正確的客戶端,且有權(quán)強(qiáng)制修改用戶昵稱;

③刷新列表:在有用戶登陸或離開的時(shí)候?qū)崟r(shí)更新列表,并將信息反應(yīng)到

各個(gè)客戶端;

④登陸信息:檢查用戶是否已登陸,如登錄,發(fā)消息通知全部用戶。同時(shí)

刷新在線用戶列表;

⑤閑聊記錄:能保存閑聊記錄,實(shí)現(xiàn)消息的保存、清空以及杳看等功能;

⑥消息處理:解析客戶端與效勞器端的消息交互類型,并做出相應(yīng)處理,

能夠找到消息所對(duì)應(yīng)的接收端。

客戶端:

主要實(shí)現(xiàn)向效勞器端發(fā)布消息,并且對(duì)來(lái)自效勞器的消息做出相應(yīng)的響應(yīng)。

詳細(xì)功能如下:

①連接功能:輸入效勞器地址,實(shí)現(xiàn)登錄及斷開功能

②登錄設(shè)置:登錄時(shí),發(fā)送消息使效勞器端獲得用關(guān)登錄信息,昵稱及TP

地址記錄到效勞器端維持的哈希表,斷開后發(fā)送消息使TP

地址及昵稱從哈希表中刪除;

③監(jiān)聽(tīng)作用實(shí)現(xiàn)對(duì)效勞器發(fā)送過(guò)來(lái)的消息進(jìn)展監(jiān)聽(tīng)的功能;

④消息處理接收由效勞器端發(fā)送來(lái)的信息,并做出相應(yīng)的響應(yīng);

⑤閑聊記錄實(shí)現(xiàn)閑聊記錄的保存、消空以及查看等功能;

⑥消息處理相應(yīng)從效勞器端接收到的消息交互類型,實(shí)現(xiàn)用戶與用戶之

間的信息交互和文件交互;

四、詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)

效勞器端

效勞器

該段功能由Server.java文件中的Server類實(shí)現(xiàn),詳細(xì)實(shí)現(xiàn)過(guò)程如下:

①啟動(dòng)效勞并接收連接:效勞器的任務(wù)首先是建立一個(gè)由IP地址到昵稱的映

射的哈希表,用于存放用戶的根本信息;啟動(dòng)效勞器后,等候建立一個(gè)連接,然

后用這個(gè)連接產(chǎn)生的Socket創(chuàng)立一個(gè)Client,同時(shí)檢查該用戶是否已存在哈希

表中,假設(shè)以存在,那么提示該次連接請(qǐng)求失敗,從而實(shí)現(xiàn)限制1P的目的;假

設(shè)不存在,那么將該1P地址及其昵稱或默認(rèn)呢稱的映射添加到哈希表中,接著

效勞器端向全部的用戶發(fā)送管理信息,提示有新的用戶登錄,并且將刷新后的用

戶列表同時(shí)發(fā)送到各個(gè)客戶端。

②關(guān)閉效勞:效勞器端遍歷哈希表,關(guān)掉每一個(gè)用戶對(duì)應(yīng)的Sockel,之后,

關(guān)閉效勞Server,

③管理作用之發(fā)送消息:效勞器端解析由客戶端發(fā)送的請(qǐng)求,假設(shè)限制字以

“SPECIAL"開頭,那么通過(guò)限制字后的昵稱從哈希表中找到對(duì)應(yīng)的用戶,實(shí)現(xiàn)

效勞器端到客戶端的點(diǎn)對(duì)點(diǎn)消息交互;假設(shè)不是以“SPECIAL"開頭,那么實(shí)現(xiàn)

消息的播送發(fā)布。

④管理作用之修改昵稱:首先推斷新的昵稱是否在哈希表中存在,假設(shè)已存

在那么給出錯(cuò)誤提示,否則通過(guò)該用戶的舊昵稱在哈希表中查找到該用戶,并

用欲修改的昵稱替換掉原昵稱;接著刷新效勞器端的用戶列表顯示,最終刷新客

戶端的用戶列表顯示。

⑤管理作用之?dāng)嚅_連接:假設(shè)要斷開某個(gè)客戶端與效勞器的連接,首先向該

用戶發(fā)送被管理員請(qǐng)出系統(tǒng)的信息,然后通過(guò)該用戶的呢稱從哈希表中找到對(duì)應(yīng)

socketsservice及IP地址等信息,再?gòu)拿恳豁?xiàng)信息對(duì)應(yīng)的列表里刪除該用戶

的信息,最終關(guān)閉該用戶的socket,同時(shí)刷新效勞器端以及各個(gè)客戶端的用戶

列表顯示。

⑥在效勞其中,須要同時(shí)處理多個(gè)客戶端的請(qǐng)求,因此此處用到了多線程處

理機(jī)制。在效勞器程序里創(chuàng)立單個(gè)SorvorSocket,并調(diào)用accept()來(lái)等候一

個(gè)新連接,一旦accept()返回,就取得結(jié)果獲得的socket,并用它新建一個(gè)

線程,令其只為那個(gè)特定的客戶端效勞,然后再調(diào)用accept0,等候下一次新

的連接請(qǐng)求。

界面設(shè)計(jì)

該段功能由ServerFrame.java文件中的ServerFrame類實(shí)現(xiàn),詳細(xì)實(shí)現(xiàn)過(guò)

程如下:

窗口布局:效勞器端窗口運(yùn)用了BorderLayout事務(wù)管理器,把整個(gè)容器分

成了五個(gè)區(qū)域:North、South、East>West和Center,每個(gè)區(qū)域放置一個(gè)

面板,每個(gè)面板又分別運(yùn)用不同的事務(wù)管理器放置其他組件,如按鈕、標(biāo)簽、

文本框等,各個(gè)組將構(gòu)成了一個(gè)完整的效勞器端界面。

事務(wù)處理:通過(guò)Java的授權(quán)事務(wù)模型,針對(duì)組件send、Buttonl"Button8,通

過(guò)addXXXListener(主要運(yùn)用了addActionListener)方法注冊(cè)監(jiān)聽(tīng)器,并且實(shí)現(xiàn)

ActionListener接口中的actionPerformed方法,這樣,當(dāng)組件觸發(fā)了相應(yīng)類

型的事務(wù)后,此事務(wù)就會(huì)被傳送給已注冊(cè)的監(jiān)聽(tīng)器,事務(wù)監(jiān)聽(tīng)器負(fù)責(zé)處理事務(wù)。

至此,實(shí)現(xiàn)了窗口對(duì)以下幾個(gè)事務(wù)的響應(yīng):發(fā)送消息、保存消息、清空消息、查

看歷史消息、啟動(dòng)效勞、關(guān)閉效勞、斷開連接、修改昵稱。

五、運(yùn)行結(jié)果

客戶端登陸

客戶端注冊(cè)

客戶端與客服端私聊

客戶端保存記錄文件

/EclipseJavaEnterpris-聊天室[用戶:明]

EditSourceRefa(

【在線用戶列表】在線人數(shù).31聊天信息]

咽【你】對(duì)[所有人】微笑地說(shuō):啊

【111】來(lái)了

111【111】對(duì)【保工課:膽

ackageExplorer眼222黑謁瑞歙播捻

【222】來(lái)了

說(shuō):hello

??聊天室[用戶111]區(qū)

t在線用戶列表]在線人數(shù):31聊天信息】

說(shuō)

^明

rm又

L:

咽人

r又U:

k^督

說(shuō)

r人

111kr@

r

222k2x

r22翁

k2u?

22m?

r2有

k22:hello

l£>|[HappyChat]副劉胳S區(qū)

服務(wù)器管理用戶信息管理

[用戶消息][在線用戶列表]

[22:9:29]啊-淅有人咽

[22:11:3]111-WDM111

[22:11:25]11廠海有人闡

222

國(guó)[22:11:54]11卜》筑有人:咽

[22:16:7]222-次俏入咽

國(guó)[22:18:9]222->斫有人:hello

user.t

user2

六、結(jié)論與總結(jié)

課程設(shè)計(jì)結(jié)論

通過(guò)4.3運(yùn)行結(jié)果,可以看出,該課程設(shè)計(jì)利用Java應(yīng)用程序Socket編程

實(shí)現(xiàn)了以下功能:運(yùn)用Java的多線程處理機(jī)制建立兩個(gè)套接字分別作為效勞器

端和客戶端。

在效勞器端實(shí)現(xiàn)了向各個(gè)客戶端發(fā)布系統(tǒng)消息、,承受來(lái)自客戶端的各種信息

并分別處理的功能,可以限制客戶端的連接以及對(duì)用戶的管理作用,并且能夠適

時(shí)檢測(cè)已登錄用戶的連接狀態(tài)且刷新在線用戶列表,更能夠解析客戶端與效勞器

端的消息交互并做出相應(yīng)處理。

在客戶

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論