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

正文內(nèi)容

基于java聊天室的設(shè)計(jì)與實(shí)現(xiàn)(參考版)

2024-09-06 13:01本頁(yè)面
  

【正文】 有意義的軟件測(cè)試應(yīng)該是從“破壞”軟件系統(tǒng)的角度出發(fā),精心設(shè)計(jì)。 由于程序中隱藏的缺陷只在特定的環(huán)境下才有可靠顯露,系統(tǒng)缺陷通常是由于對(duì)某些特定情況考慮不周造成的。大量統(tǒng)計(jì)資料表明,系統(tǒng)測(cè)試的工作量往往占軟件開(kāi)發(fā)總工作量的 30%以上。當(dāng)服務(wù)器出線異?;蜿P(guān)閉時(shí),客戶(hù)端將提示服務(wù)中斷并退出系統(tǒng)。在主界面的顯示區(qū)中可以不斷的查看到其他用戶(hù)發(fā)送過(guò)來(lái)的信息,并可以通過(guò)點(diǎn)擊查看記錄按鈕查看保存的聊天記錄。用戶(hù)可以在信息發(fā)送 區(qū)內(nèi)輸入自己的發(fā)送內(nèi)容,并可以通過(guò)功能設(shè)置區(qū)設(shè)置字體內(nèi)容的屬性和發(fā)送表情。 測(cè)試程序主界面 進(jìn)入主界面后,主頁(yè)面會(huì)顯示在線用戶(hù)列表區(qū)、信息顯示區(qū)、功能設(shè)置區(qū)、信息發(fā)送區(qū)、功能按鈕區(qū)?,F(xiàn)將具體操作及過(guò)程舉例說(shuō)明如下: 測(cè)試舉例 測(cè)試程序 登錄界面 打開(kāi)程序后,首先出現(xiàn)的是登錄頁(yè)面,在設(shè)置好網(wǎng)絡(luò) IP 和端口號(hào)之后,輸入用戶(hù)名和密碼,如果連接服務(wù)器成功則提示用戶(hù)輸入的用戶(hù)名和密碼是否正確,否則提示連接不到服務(wù)器,并提示正確設(shè)置服務(wù)器 IP 和服務(wù)端口。服務(wù)器端發(fā)送的信息分為:注冊(cè)成功消息 注冊(cè)失敗消息、注冊(cè)時(shí)驗(yàn)證用戶(hù)名成功消息、注冊(cè)時(shí)驗(yàn)證用戶(hù)名失敗消息、登入成功消息、登入失敗消息、轉(zhuǎn)發(fā)公聊消息、轉(zhuǎn)發(fā)的私了消息、刷新列表名消息等。客戶(hù)端發(fā)送的信息分為:注冊(cè)消息、注冊(cè)時(shí)用戶(hù)名驗(yàn)證消息 、登入消息、 聊天消息 、下線消息等。 綜合設(shè)計(jì) 實(shí)現(xiàn)功能的主要類(lèi)和方法 (1)ServerInterFace 類(lèi) //服務(wù)器的用戶(hù)界面 Private void initCompenent() {……} // 組件初始化 class StartServer implements ActionListener{……} //關(guān)閉和監(jiān)聽(tīng) (2)TalentServer 類(lèi) //服務(wù)器啟動(dòng)模塊 Public void run() {……} // 發(fā)送系統(tǒng)消息 class SysinfoBuAction implements ActionListener {……} //啟動(dòng)服務(wù)器 功能邏輯實(shí)現(xiàn) 邏輯功能描述 本系統(tǒng)采用數(shù)據(jù)對(duì)象流的形式發(fā)送和接受信息。 綜合設(shè)計(jì) 實(shí)現(xiàn)該功能所用的主要類(lèi)和方法 PersonalChat 類(lèi) //聊天 界面類(lèi) 其中包括顯示聊天內(nèi)容的文本面板,顯示發(fā)送消息的文本面板,發(fā)送消息按鈕,關(guān)閉窗體按鈕,顯示聊天內(nèi)容的按鈕等。 聊天 用戶(hù)本地文件服務(wù)器目的用戶(hù)本地文件6 : 文件輸入流讀取5 : 文件輸出流保存1 : 發(fā)送聊天信息2 : 發(fā)送消息3 : 文件輸出流保存4 : 文件輸入流讀取 圖 68聊天時(shí)序圖 基于 JAVA 聊天室的設(shè)計(jì)與開(kāi)發(fā) 23 功能描述 用戶(hù)在 聊天 界面的信息輸入框 中輸入要發(fā)送的信息和表情等, 用戶(hù)可以通過(guò)功能設(shè)置按鈕設(shè)置自己定義的字體屬性 ,如: 字體類(lèi)型 、 字體大小 、 字體顏色 、 字體 顯示方式、表情等, 并可以應(yīng)用到信息輸入框中, 點(diǎn)發(fā)送按鈕實(shí)現(xiàn)私聊信息的發(fā)送。 private String passWord。 // final File propertyFile。 //服務(wù)器 IP 地址 int server_port。 登入流程如圖 65。 如圖 63 和 64。 圖 62 注冊(cè)界面 本部分要進(jìn)行入庫(kù)操作,所以要對(duì)所輸入的字符是否合理進(jìn) 行判斷, 例如輸入合理,服務(wù)器就會(huì)提示注冊(cè)成功,就可以直接登錄或返回登陸界面。 HeadPicCombobox()是頭像列表類(lèi),通過(guò) HeadPicCombobox()來(lái)文件中找到數(shù)字所對(duì)應(yīng)的頭像。 JbInit()是創(chuàng)建注冊(cè)窗口函數(shù),其中包括該窗口的所有內(nèi)容,采用空布局方式,通過(guò)付給控件坐 標(biāo)來(lái)把所有控件添加到主窗口上。 功能說(shuō)明: Register 類(lèi)是處理用戶(hù)注冊(cè)的,為用戶(hù)提供一個(gè)注冊(cè)界面以便用戶(hù)填好資料后就進(jìn)行入庫(kù)操作。需要說(shuō)一下的就是密用戶(hù) 注冊(cè)界面 正確填寫(xiě)注冊(cè)項(xiàng) 提交 注冊(cè)成功 6 詳細(xì)設(shè)計(jì) 18 碼顯示的實(shí)現(xiàn),要做成只 *,來(lái)實(shí)現(xiàn)密碼保密。 圖 61注冊(cè)活動(dòng) 流程圖 注冊(cè)部分是用來(lái)處理新建用戶(hù)的,每一次申請(qǐng)新的號(hào)碼都要用 到它。 客戶(hù)端注冊(cè) 功能描述 用戶(hù)必須填寫(xiě)注冊(cè)給定的全部選項(xiàng),并且按照正確的格式輸入,如年齡一項(xiàng)只能輸入數(shù)字,的格式等等,并可以在申請(qǐng)注冊(cè)前驗(yàn)證輸入的用戶(hù)名是否已被使用?;?JAVA 聊天室的設(shè)計(jì)與開(kāi)發(fā) 17 6 詳細(xì)設(shè)計(jì) 本系統(tǒng)采用 C/S 設(shè)計(jì)模式,系統(tǒng)分為客戶(hù)端和服務(wù)器端,客戶(hù)端包括注冊(cè)模塊、登入模塊、公聊模塊、私聊模塊、功能設(shè)置模塊 、和客戶(hù)端功能實(shí)現(xiàn)模塊等。 receive()方法會(huì)一直阻塞直至受到一個(gè)數(shù)據(jù)報(bào)報(bào)文,而該函數(shù)存放在 DategramPacket 對(duì)象的緩沖區(qū)中。該對(duì)象利用了 DategramPacket 類(lèi)的一種構(gòu)造 方式 DategramPacket 這種構(gòu)造方式只需要指明存放接受的數(shù)據(jù)報(bào)的緩沖區(qū)的長(zhǎng)度。 Public int getPort():返回發(fā)送或接受數(shù)據(jù)報(bào)的遠(yuǎn)程主機(jī)的端口號(hào)。 Public int getLength():返回發(fā)送或接受消息的長(zhǎng)度。 5 系統(tǒng)的實(shí)現(xiàn) 16 (2)監(jiān)聽(tīng)好友消息 首先用 run()啟用一線程,再將此線程無(wú)限監(jiān)聽(tīng)好友的消息,無(wú)限監(jiān)聽(tīng)在監(jiān)聽(tīng)好友消息中定義一個(gè)空數(shù)組,該數(shù)組用于接受消息中的數(shù)據(jù);然后創(chuàng)建數(shù)據(jù)報(bào),使用 receive (receivePacket)函數(shù)等待并接受數(shù)據(jù)報(bào),用 byte[]date= receive ()函數(shù)來(lái)取得數(shù)據(jù)報(bào)中的數(shù)據(jù)。 鼠標(biāo)事件相應(yīng)函數(shù)是屬于發(fā)送消息菜單,當(dāng)點(diǎn)擊發(fā)送消息菜單時(shí),執(zhí)行這個(gè)函數(shù),并創(chuàng)建一個(gè)發(fā)送消息的窗口。 在 發(fā)送的過(guò)程中利用構(gòu)造函數(shù) DategramPacket 構(gòu)造一個(gè)包長(zhǎng)度為 length 的包,它是一個(gè)將數(shù)據(jù)傳送到指定主機(jī)指定端口號(hào)上的數(shù)據(jù)文包,參數(shù) length 必須小于等于。消息發(fā)送之前首先創(chuàng)建一個(gè)數(shù)據(jù)報(bào)文包,用來(lái)實(shí)現(xiàn)無(wú)連接的包傳送服務(wù),每個(gè)數(shù)據(jù)報(bào)文包是用 DategramPacket 類(lèi)來(lái)創(chuàng)建的, DategramPacket 對(duì)象封裝數(shù)據(jù)報(bào)包數(shù)據(jù)、包長(zhǎng)度、目標(biāo)地址和目標(biāo)端口。 消息通信的實(shí)現(xiàn) 本系統(tǒng)通信方式是采用數(shù)據(jù)報(bào)服務(wù)實(shí)現(xiàn)的,創(chuàng)建數(shù)據(jù)報(bào)的連接實(shí)現(xiàn)步驟是:首先創(chuàng)建一個(gè)發(fā)送連接,這是一個(gè)數(shù)據(jù)報(bào)式的連接;然后再創(chuàng)建 一個(gè)接受連接,當(dāng)然也是一個(gè)數(shù)據(jù)報(bào)式的連接;最后輸入連接的端口信息。 服務(wù)器連接是在 ConnectServer()函數(shù)中實(shí)現(xiàn)的,此函數(shù)用到了具有連續(xù)性、有序性特點(diǎn)的流,根據(jù)服務(wù)器的 IP 地址和端口來(lái)完成客戶(hù)端與服務(wù)器端的連接。并且通過(guò) UDP 通知該客戶(hù) ,對(duì)方收到該消息后 ,可以選擇是否添加該用戶(hù)為好友。 如 圖 51 所示: 圖 51服務(wù)器端多線程 基于 JAVA 聊天室的設(shè)計(jì)與開(kāi)發(fā) 15 服務(wù)器連接的實(shí)現(xiàn) 我們知道 ,客戶(hù)程序和服務(wù)器程序是通過(guò) TCP 的方式通訊的 ,我們從服務(wù)器的角度出發(fā) ,知道其需要完成多種操作 ,所以在實(shí)現(xiàn)時(shí) ,客戶(hù)端在使用 TCP與服務(wù)器建立了聯(lián)系之后 ,會(huì)首先發(fā)送一標(biāo)記 ,服務(wù) 器通過(guò)識(shí)別該標(biāo)記 ( 利用 if 語(yǔ)句 ) 來(lái)繼續(xù)完成相應(yīng)的操作。最后,當(dāng)處理完緩沖區(qū)的數(shù) 據(jù),可以使用 DategramSocket 對(duì)象 close()方法來(lái) 關(guān)閉數(shù)據(jù)包通信 Socket。若打不開(kāi) Socket 或 Socket 無(wú)法與指定的端口連接則拋出SocketException 異常。若打不開(kāi) Socket 則拋出 SocketException 異常 。 工作流程是這樣的,首先通信雙方要建立數(shù)據(jù)報(bào)通信的 Socket。數(shù)據(jù)報(bào)的通信雙方不需要建立連接,對(duì)于像聊天通信這些不需要很高質(zhì)量的應(yīng)用程序來(lái)說(shuō),數(shù)據(jù)報(bào)通信是一個(gè)很好的選擇。 消息通信的設(shè)計(jì) 本系統(tǒng)中通信 主要是通過(guò)數(shù)據(jù)報(bào)服務(wù)來(lái)實(shí)現(xiàn)的, Java 實(shí)現(xiàn)數(shù)據(jù)報(bào)通信的過(guò)程除了面向連接的 Soket 外,還有無(wú)連接的數(shù)據(jù)報(bào) Soket。 start()是線程的啟動(dòng)方法。即使完成了一個(gè)申請(qǐng),也要繼續(xù)等待處理下一個(gè)申請(qǐng),直到 Server 的退出 Server 類(lèi)結(jié)構(gòu) 。 由于 Server 只需處理客戶(hù)端的申請(qǐng)和連接數(shù)據(jù)庫(kù),就沒(méi)有必要在用窗體來(lái)顯示了,所以我只把服務(wù)器端的響應(yīng)在 DOS 界面中打印出來(lái),無(wú)論是什么樣的申請(qǐng),做出什么樣的應(yīng)答,在服務(wù)器端都會(huì)有所顯示,讓用戶(hù)清楚的看到。例如,申請(qǐng)?zhí)柎a成功就 要 是要在 Server 端顯示出申請(qǐng)成功,并顯示出所申請(qǐng)的號(hào)碼;添加好友時(shí)要顯示好友的號(hào)碼,并顯示是否添加成功。所以,與數(shù)據(jù)連接的語(yǔ)句全在 Server里,這樣無(wú)論對(duì)調(diào)試還是運(yùn)行都比較方便。 服務(wù)器端的設(shè)計(jì) (Server 類(lèi) ) 服務(wù)器的工作主要是處理客戶(hù)端與數(shù)據(jù) 庫(kù)的數(shù)據(jù)傳遞。 客戶(hù)端的多線程設(shè)計(jì) : 客戶(hù)端的多線程設(shè)計(jì) 和服務(wù)器端的不同,客戶(hù)端是用多線程里的無(wú)限監(jiān)聽(tīng)方法,隨時(shí)等待接收其他用戶(hù)傳來(lái)的信息。 ServerThread 類(lèi)的構(gòu)造,首先創(chuàng)建 ServerThread(Socket s)線程的構(gòu)造函數(shù)再通過(guò)Socket=s 來(lái)取得 ServerThread(Socket s)的傳遞函數(shù), 同時(shí)使用 BufferedReader(new InputStreamReader(()))來(lái)創(chuàng)建。 多線程的設(shè)計(jì) 服務(wù)器多線程詳細(xì)設(shè)計(jì) : 主服務(wù)器類(lèi)調(diào)用 ServerThread 類(lèi)來(lái)實(shí)現(xiàn)服務(wù)器端的多線程,而每個(gè) ServerThread 實(shí)體就是一個(gè)單獨(dú)的線程,即對(duì)應(yīng)于客戶(hù)端連接請(qǐng)求響應(yīng)的線程。 (3)收發(fā) 信息類(lèi) 本系統(tǒng)主要部分尤其是難點(diǎn)都在網(wǎng)絡(luò)傳輸上,所以發(fā)送信息部分就比較主要,它可以說(shuō)是這個(gè)程序的一個(gè)標(biāo)識(shí)。 (2)查找好友類(lèi) 查找好友實(shí)際上就是要對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢(xún)操作,其實(shí)現(xiàn)方法是通過(guò) Server 類(lèi)來(lái)做的。 (1)創(chuàng)建列表類(lèi) 這個(gè)類(lèi)包括好友列表和用戶(hù)的功能列表。它的主要作用是橋梁作用,里面定義的都是監(jiān)聽(tīng)事件,當(dāng)客戶(hù)端要做某種操作時(shí)都可以被該類(lèi)中 相應(yīng)監(jiān)聽(tīng)事件所捕捉,然后監(jiān)聽(tīng)事件對(duì)所捕捉到的客戶(hù)端的操作進(jìn)行相應(yīng)的處理。下面我就對(duì)各個(gè)部分進(jìn)行一下詳細(xì)說(shuō)明。用其中的兩個(gè)表 qq 和 friend 來(lái)存取程序 所 用到的一些信息。 易用性: 系統(tǒng)操作的界面必須簡(jiǎn)潔、操作方便易用、設(shè)計(jì)合理 。 安全性:安全性是防止網(wǎng)絡(luò)方面的攻擊 。要求系統(tǒng)可以承受告警風(fēng)暴和大數(shù)據(jù)量的沖擊,不出現(xiàn)內(nèi)存溢出等現(xiàn)象 。 (2)穩(wěn)定性需求 : 軟件應(yīng)正常完成所有功能需求。用戶(hù)之間信息傳3 需求分析 10 輸不會(huì)因?yàn)閿?shù)據(jù)封裝問(wèn)題出現(xiàn)丟失或亂碼。 異常過(guò)程 : (1)客戶(hù)端與服務(wù)端斷開(kāi)連接,客戶(hù)端提示服務(wù)器異常。 執(zhí)行者 :用戶(hù) 前置條件:用戶(hù)登錄成功, 聊 天 的對(duì)方在線 后置條件:無(wú) 正常過(guò)程: (1)客戶(hù)端與服務(wù)端建立通訊 基于 JAVA 聊天室的設(shè)計(jì)與開(kāi)發(fā) 9 (2)客戶(hù)端將用戶(hù)發(fā)送的信息打包傳送給服務(wù)端 (3)服務(wù)端進(jìn)行數(shù)據(jù)分析,查找目的用戶(hù)的 ID,并將用戶(hù)的信息傳給目的用戶(hù) (4)目的用戶(hù)收到服務(wù)器的信息后,正確的顯示并保存 異常過(guò)程 : (5)客戶(hù)端與服務(wù)端斷開(kāi)連接,客戶(hù)端提示信息發(fā)送失敗。 一對(duì)一 聊天 需求描述:用戶(hù)可選擇聊天室的在線用戶(hù)列表中其他用戶(hù)聊天。 (6)客戶(hù)端設(shè)置的服務(wù)器地址或端口有誤 。 (4)刷新其他在線用戶(hù)的用戶(hù)列表信息 。 (2)服務(wù)端處理并查詢(xún)數(shù)據(jù)庫(kù)中的用戶(hù)信息 。 (3)服務(wù)器未啟動(dòng)或出現(xiàn)異常 用戶(hù)登入 需求描述:用戶(hù)填寫(xiě)登入 ID 和密碼,經(jīng)服務(wù)器驗(yàn)證成功后進(jìn)入聊天室主界面。 異常過(guò)程 : (1)用戶(hù)填寫(xiě)表單的數(shù)據(jù)格式不正確或表單中存在空缺的項(xiàng),客戶(hù)端給予提示信息,并將光標(biāo)定位到出錯(cuò)的地方。 服務(wù)端: (1)可以不斷的監(jiān)聽(tīng)客戶(hù)端請(qǐng)求 (2)顯示登入客戶(hù)的信息 (3)發(fā)送系統(tǒng)消息 功能需求 用戶(hù)注冊(cè) 需求描述:用戶(hù)填寫(xiě)系統(tǒng)給出的注冊(cè)項(xiàng)目,并提交給系統(tǒng),成功注冊(cè)后,系統(tǒng)生成用戶(hù)所注冊(cè)的登入 ID,并保存在數(shù)據(jù)庫(kù)當(dāng)中。 (3)聊天功能: 實(shí) 現(xiàn)用戶(hù)和在線的其他用戶(hù)一對(duì)一的聊天方式。 圖 31 客戶(hù)端結(jié)構(gòu) 圖 客戶(hù)端 注冊(cè) 登錄 主界面 聊天 基于 JAVA 聊天室的設(shè)計(jì)與開(kāi)發(fā) 7 圖 32 服務(wù)器端結(jié)構(gòu) 圖 產(chǎn)品功能 本項(xiàng)目具有以下主要功能: 客戶(hù)端: (1)用戶(hù)注冊(cè)功能 : 實(shí)現(xiàn)用戶(hù)的登入 ID 注冊(cè)和個(gè)人信息,并存入服務(wù)器數(shù)據(jù)庫(kù)中。本聊天室主 要由注冊(cè)界面、登錄界面、聊天室界面、 功能設(shè)置界面等構(gòu)成。 該小聊天室是為許多喜愛(ài)上網(wǎng)聊天 的朋友開(kāi)發(fā)設(shè)計(jì)的。本聊天室 就是一個(gè)可以讓許多用戶(hù)同時(shí)互相通信的網(wǎng)上園地,個(gè)人用戶(hù)可以通過(guò)網(wǎng)上聊天室將自己融入整個(gè)主流社會(huì)中。
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1