freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于java聊天室的設(shè)計與實現(xiàn)-閱讀頁

2024-09-22 13:01本頁面
  

【正文】 出現(xiàn)異常 。并且對方有消息提示,雙方發(fā)送的信息對于聊天室的其他用戶是不可見的。 (6)客戶端發(fā)送的 聊 天 內(nèi)容包含不合法的字符 發(fā)送表情 需求描述:用戶的聊天內(nèi)容可以是表情圖片 執(zhí)行者:用戶 前置條件:用戶可以正常聊天 后置條件:無 正常過程 : (1)客戶端與服務(wù)端建立通訊 (2)客戶端將表情所表示的信息傳送給服務(wù)端 (3)服務(wù)器端進(jìn)行數(shù)據(jù)分析后,查找目的用戶的 ID,并將所處理的信息傳給目的用戶 , 目的用戶端通過本地文件將信息翻譯成表情并正確顯示在顯示窗體中。 (2)客戶端發(fā)送的表情信息不正確或本地文件不存在異常 用戶退出 需求描述:用戶在正常情況下退出聊天室 執(zhí)行者:用戶 前置條件:用戶成功登錄聊天室 后置條件:無 正常過程: (1)向服務(wù)器發(fā)送用戶登出消息 (2)服務(wù) 器進(jìn)行用戶退出的數(shù)據(jù)處理 (3)服務(wù)器向聊天室其他用戶發(fā)送登出消息 (4)刷新其他在線用戶的用戶列表信息 質(zhì)量性能需求 (1)容錯性需求: 當(dāng)出現(xiàn)代碼異常時,出現(xiàn)正確的提示,不會影響整個系統(tǒng)的運行。因用戶的誤操作產(chǎn)生的異常應(yīng)做出及時的處理或信息提示。服務(wù)器端應(yīng)長時間運行無故障,故障修復(fù)時間一般控制在 3 小時內(nèi),除非出現(xiàn)惡性攻擊、病毒破壞、系統(tǒng)資源不足、硬件故障、操作系統(tǒng)或數(shù)據(jù)庫系統(tǒng)崩潰網(wǎng)絡(luò)中斷等情況,要 求系統(tǒng)連續(xù)運行一周,不允許出現(xiàn)內(nèi)存泄露。 (3)軟件設(shè)計需求 : 要確定合適的模塊粒度,各模塊之間要求松耦合,高內(nèi)聚;從而使整個系統(tǒng)的可靠性和穩(wěn)定性得到提高,并且便于系統(tǒng)維護(hù),和新模塊的添加。 擴展性:系統(tǒng)建成后,應(yīng)在現(xiàn)行系統(tǒng)上不需要做大的改動或不影響整個系統(tǒng)結(jié)構(gòu),就可以增加功能模塊,這就必須在系統(tǒng)設(shè)計時留有接口,使其具有可擴展性和維護(hù)性?;?JAVA 聊天室的設(shè)計與開發(fā) 11 4 概要設(shè) 計 系統(tǒng)的代碼結(jié)構(gòu) 本系統(tǒng)的原程序幾乎全部有代碼構(gòu)成,一個可分為四個部分, Server、 New、 Register和 MainWin。服務(wù)器端用Server 來執(zhí)行,客戶端用 New 來執(zhí)行,其它的兩個類都是被調(diào)用的。 主程序類的設(shè)計 (MainWin 類 ) 本部分是整個系統(tǒng)中最大的部分,但它們并不被直接執(zhí)行,而是通過別的類來調(diào)用。該部分能實現(xiàn)好友查找,建立創(chuàng)建列表類,處理列表類和發(fā)送信息類來組成。這兩個列表的布局是一樣的,都是空布局,然后一個一個的把控件添加上去,每添一個都要把坐標(biāo)值付給主容器即主窗體,以便在相應(yīng)的位置上顯示這個控件。通過數(shù)據(jù)庫的查詢可以直接顯示出其他用戶的呢稱,性別和所在省份。 發(fā)送信息是通過 UDP 協(xié)議直接向其他用戶發(fā)送出去的,接收信息是在 MainWin 類里,用多線程里的無限監(jiān)聽方法,隨時等待接收其他用戶傳來的信息。服務(wù)器端總有一個線程在指定的端口等待客戶的連接信息, 即使用 ServerSocket s=new ServerSocket(8080)語句在 8080 端口創(chuàng)建套接口;當(dāng)有客戶端申請連接時使用 new ServerThread(socket)語句4 概要設(shè)計 12 創(chuàng)建一個新的線程來和客戶端建立連接。最后 使用 start()函數(shù)啟動這個線程;使用 run()來監(jiān)聽已經(jīng)連接的線程 。當(dāng)然客戶端是調(diào)用 Thread類來實現(xiàn)多線程的,用 run()方法來提供監(jiān)聽,然后創(chuàng)建一個異常來處理當(dāng)有好友連接時出現(xiàn)的各種情況,如,好友上線,好友下線,有好友添加你為好友,有好友給你發(fā)送消息等等。一方面要對客戶端提出的申請做出應(yīng)答,另一方面要對數(shù)據(jù)庫進(jìn)行相應(yīng)的操作。 但 Server 類主要處理這些連接工作,對數(shù)據(jù)的具體操作幾乎沒有,能看到的只是在DOS 界面的一些文字顯示而已。 Server 類主要是對客戶端提出的申請做出回應(yīng),有 login 登錄, new 新建, find 查找好友, friend 讀取 好友資料, addfriend 添加好友 ,delfriend 刪除好友, logout 退出程序,getwhoaddme 上線的時候通知好友。 Server 端執(zhí)行的是一個無限監(jiān)聽的過程,它要隨時等待客戶端說發(fā)出的申請。 功能說 明: Server 類是處理客戶端和數(shù)據(jù)的連接工作的,同時也要對客戶端的請求做出回應(yīng)。 run()線程的運行方法,里面是程序的主要部分,用于做出服務(wù)器的所有回應(yīng)。數(shù)據(jù)報是網(wǎng)絡(luò)層數(shù)據(jù)單元在介質(zhì)上傳輸信息的一種邏輯分組格式,它是一種在網(wǎng)絡(luò)中傳播的、獨立的、自身包含地址信息的基于 JAVA 聊天室的設(shè)計與開發(fā) 13 消息,它能否到達(dá)目的地,到達(dá)的時間,到達(dá)的內(nèi)容是否回變化是 不能準(zhǔn)確知道的。 在 Java 的 API 函數(shù)中有 這樣包,此包中有兩個類 DategramSocket 和DategramPacket,他們?yōu)閼?yīng)用程序采用數(shù)據(jù)報通信方式進(jìn)行網(wǎng)絡(luò)通信提供了支持,本系統(tǒng)對數(shù)據(jù)流的操作主要用這兩個類??梢酝ㄟ^創(chuàng)建DategramSocket 來實現(xiàn)它,其構(gòu)造方法有以下兩種: (1)Public DategramSocket() 構(gòu)造一個數(shù)據(jù)報 Socket,并使其與本地主機任一可用的端口連接。 (2)Public DategramSocket(int port) 構(gòu)造一個數(shù)據(jù)報 Socket,并使其與本地連接主機指定的端口連接。 然后,處理接受緩沖區(qū)的數(shù)據(jù),獲取服務(wù)結(jié)果。 5 系統(tǒng)的實現(xiàn) 14 5 系統(tǒng)的實現(xiàn) 主程序類的實現(xiàn) 主程序是利用 MainWin 類來實現(xiàn)的,雖然主程序類并不被直接執(zhí)行但是由于所有的事件處理都在這個類中實現(xiàn)所以主程序類包含大量的成員變量,可分為三大塊,第一是保存好友基本信息所有變量的定義,第二是用于臨時變量保存臨時好友也是用戶的基本信息和一些數(shù)組的指數(shù),第三是網(wǎng)絡(luò)相關(guān)變量,再加上程序界面變量就是在此系統(tǒng)中用到的所有變 多線程的實現(xiàn) 服務(wù)器端的多線程是通過 Java 提供的 API 函數(shù)中的 ServerThread 類來實現(xiàn)的,用run()方法來監(jiān) 聽線程,當(dāng)監(jiān)聽到有客戶端申請連接時用 start()方法來啟動一個新線程用來和這個客戶端建立連接,同時當(dāng)有新的客戶端申請連接時服務(wù)器端會再用 start()方法啟動一個新的線程再與這個新的客戶端進(jìn)行連接,這樣就可以實現(xiàn)了服務(wù)器端的多線程。用戶添加好友 : 客戶登錄 ,按查找按鈕后 ,開始向服務(wù)器發(fā)出查找請求 ,服務(wù)器讀取消息 并向客戶返回其結(jié)果 ,客戶收到后在查找窗口中顯示 ,如果用戶選擇了一個好友 ,就向服務(wù)器發(fā)送添加好友請求 ,服務(wù)器收到后就向數(shù)據(jù)庫表 friend 中添加自己的號碼以及好友的號碼 ,并從 cmp 表中讀取其基本信息返回給客戶端 ,然后客戶收到并在主窗口顯示該好友。用戶刪除好友 : 用戶在其好友列表中選擇要刪除的 好友并按刪除 ,然后向服務(wù)器發(fā)送刪除請求 ,服務(wù)器收到該請求后 ,連接數(shù)據(jù)庫表 friend 刪除用戶及該好友的記錄 ,如果成功就向客戶返回成功消息 ,客戶收到后在其好友列表中刪除該好友。 IP 地址是網(wǎng)絡(luò)中的唯一的地址標(biāo)識。 (1)發(fā)送消息 用戶通過在好友列表中找到好友的 IP 地址,利用 UDP 協(xié)議與其他用戶進(jìn)行信息交流。若客戶端發(fā)送數(shù)據(jù)報文包則構(gòu)造函數(shù)創(chuàng)建 DategramPacket對象,將需要發(fā)送的數(shù)據(jù)和包文目的地址信息放入對象之中。消息發(fā)送是通過調(diào)用 DategramSocket 對象的 send 方法實現(xiàn)的,它需要以 DategramPacket 對象為參數(shù),將剛才封裝進(jìn) DategramPacket 對象中的數(shù)據(jù)組成數(shù)據(jù)報發(fā)送出去的。 通過 void sendmessage_mousePressed(MouseEvent e)來創(chuàng)建鼠標(biāo)監(jiān)聽事件。 (3)接受消息 Dategrampacket 類提供了四個函數(shù)來獲取消息: Public byte[] getDate():返回一個字節(jié)數(shù),包含收到或要發(fā)送的數(shù)據(jù)報中的數(shù)據(jù)。 Publilc IAddress getAddress():返回一個發(fā)送或接受此數(shù)據(jù)報報文的機器的 IP 地址。 為了接受從服務(wù)器返回的結(jié)果數(shù)據(jù)報文包而創(chuàng)建一個新的 DategramPacket 對象。系統(tǒng)可調(diào)用 DategramPacket 對象的 receive()函數(shù)來接受數(shù)據(jù)報,并將 DategramPacket 對象作為該函數(shù)的參數(shù)。數(shù)據(jù)報文包還包含了發(fā)送者的 IP 地址和端口號等信息 。服務(wù)器端包括服務(wù)器界面,服務(wù)器功能實現(xiàn)模塊等。 綜合設(shè)計 通過注冊模塊實現(xiàn)用戶的在線注冊,所填寫的注冊項目有:用戶名、密碼、密碼確認(rèn)、性別、年齡、 Email, 注冊活動流程圖 如圖 61。但代碼部分是做出個注冊界面,然后向服務(wù)器端發(fā)送請求,連接數(shù)據(jù)庫就可以。只要在定義文本格式的時候使用密碼型設(shè)置就可以,用 JpasswordField 來定義 Register 類結(jié)構(gòu) 。 Register()是類的構(gòu)造函數(shù),用于初始化 Register 類的。 MouseClick()是處理點擊按鈕類,用于激活按鈕。 程序界面如圖 62 所示。如果 密碼兩次輸入不一致,服務(wù)器就會 出報錯提示。 基于 JAVA 聊天室的設(shè)計與開發(fā) 19 圖 63 注冊成 功 圖 64 注冊失敗 登入 功能描述 在設(shè)置好 IP 和端口號的條件下,用戶在登入界面輸入已注冊好的用戶名和密碼登入,通過驗證后登入聊天室主界面,輸入錯誤返回提示。 6 詳細(xì)設(shè)計 20 圖 65 登入流程圖 綜合設(shè)計 實現(xiàn)該功能的主要類和方法 (1)Land 類 //實現(xiàn)登入的主窗體 主要成員變量 String hostid。 //服務(wù)端口 Socket client_socket。 //屬性文件 主要方法 public Land() {} //用于初始化登入界面的元素 public void actionPerformed(ActionEvent e){} //連接服務(wù)器 的方法體 public void run() { } //顯示登入主窗體主方法 用戶 進(jìn)入登入界面 輸入用戶名,密碼 提交 進(jìn)入系統(tǒng) 基于 JAVA 聊天室的設(shè)計與開發(fā) 21 圖 66 登入的主窗體 6 詳細(xì)設(shè)計 22 圖 67 登入失敗 (2)LoginData 類 //發(fā)送登入數(shù)據(jù)類型 主要變量: private String userName。 主要方法 : get,set 方法獲得 userName 和 passWord 兩個變量的值 。并可以顯示其他用戶發(fā)送過來的私聊信息 , 并且按照發(fā)送來的信息中包含好的顯示方式正確顯示出信息。 圖 514 PersonalChat 類圖 圖 69聊天界面 6 詳細(xì)設(shè)計 24 發(fā)送系統(tǒng)消息 系統(tǒng)管理員服務(wù)器在線用戶1 : 發(fā)送系統(tǒng)信息2 : 發(fā)送消息 圖 610系統(tǒng)消息時序圖 功能描述 服務(wù)器端收到用戶上線或下線時發(fā)送給其他在線用戶消息提示,并可以根據(jù)需要,主動發(fā)送消息給客戶,實現(xiàn)服務(wù)器端的管理。 客戶端連接服務(wù)器成功后就啟動一個客戶端線程和服務(wù)器通信。 服務(wù)器端啟動一個線程不斷的監(jiān)聽客戶的請求,當(dāng)接受到客戶請求時就啟動一個和基于 JAVA 聊天室的設(shè)計與開發(fā) 25 該客戶端通信的線程。 綜合設(shè)計 (1)TransferMap 類 //用于客戶端與服務(wù)器之間的消息傳遞 (2)LoginData 類 //用于登入時發(fā)送的信息對象類型 (3)RegisterData 類 //用于注冊時發(fā) 送的信息對象類型 (4)ChatInformation 類 //用于用戶公聊或私聊時發(fā)送的信息對象類型 (5)ClientThread 類 //客戶端連接服務(wù)器成功后啟動的線程 (6)ServerAffairThread 類 //服務(wù)器端為用戶啟動的服務(wù)器線程 (7)LineDialog 類 //實現(xiàn)提示用戶聊 天 消息 (8)Displaychatifn 類 //顯示信息內(nèi)容 7 系統(tǒng)測試 26 7 系統(tǒng)測試 為了確保本系統(tǒng)能夠正常運行,需要在發(fā)布之后做一次較全面的測試。其中端口號只能設(shè)置 1024 之后的端口號,前面的地址為服務(wù)器作為保留地址用,否則程序會提示錯誤。用戶可以在用戶列表中看到目前在線的其他用戶,并在信息顯示區(qū)內(nèi)看到系統(tǒng)提示??梢酝ㄟ^單擊用戶列表名中的用戶彈出私聊窗體,進(jìn)行私聊,發(fā)送的信息其他用戶不可以見。 測試程序退出 當(dāng)單擊退出按鈕或窗體的關(guān)閉時,用戶將發(fā)送退出信息,離開聊天室,其他用戶可以得到系統(tǒng)提示用戶下線并刷新用戶列表。 測試項目 由于實際開發(fā)過程中還是不可避免地會產(chǎn)生差 錯,系統(tǒng)中通??赡茈[藏著錯誤和缺陷,不經(jīng)周密測試的系統(tǒng)投入運行,將會造成難以想象的后果,因此系統(tǒng)測試是軟件開發(fā)過程中為保證軟件質(zhì)量必須進(jìn)行的工作。因此,我們必須重視測試工作。因此測試不是為了表明程序正確;成功的測試也不是沒有基于 JAVA 聊天室的設(shè)計與開發(fā) 27 發(fā)現(xiàn)錯誤的測
點擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1