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

正文內(nèi)容

基于j2se的qq聊天系統(tǒng)的設(shè)計(jì)本科畢業(yè)論文(編輯修改稿)

2025-04-03 09:47 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 通過與服務(wù)器端的監(jiān)聽器相連。 客戶端發(fā)送消息的設(shè)計(jì) 用戶發(fā)送消息由 ActionListener 監(jiān)聽器監(jiān)聽,具體功能是由actionPerformed 方法來監(jiān)聽的。該方法首先獲得要監(jiān)聽的對(duì)象是接收、發(fā)送文件還是私聊、公聊。如果是私聊,當(dāng)選中 checkbox 后,則加上 privateTrue 字符串。然后把提示信息、聊天的對(duì)象、聊天方式和聊天內(nèi)容依次通過輸出流發(fā)送給服務(wù)器端,服務(wù)器端會(huì)根據(jù)接收到的內(nèi)容作相應(yīng)的轉(zhuǎn)發(fā)處理。 關(guān)鍵代碼: public CS_TCP(String serverIP, int serverPort) throws Exception { super(serverIP, serverPort)。 } @Override public void dealWithMessage(Flag flag, String message) { (測(cè)試+()+,+message)。 switch(flag) { case LOGIN:doLogin(message)。break。//如果 是登錄 case REGISTER:doRegister(message)。break。//如果是注冊(cè) } } 畢業(yè)論文 14 客戶端顯示收到消息的設(shè)計(jì) 在接收消息模塊中定義了一個(gè) while 循環(huán),只要用戶沒有下線或與服務(wù)器的連接沒有中斷,則消息一直處于等待接收狀態(tài)。當(dāng)輸入流讀取到服務(wù)器發(fā)送的消息后用 if條件語句判斷是何種類型的信息,并對(duì)其做加上相應(yīng)的類型提示信息的處理。最后在主界面的消息面板進(jìn)行顯示。 關(guān)鍵代碼: 客戶端發(fā)送接收文件的設(shè)計(jì) 在 ChatMainFrame 類的按鈕監(jiān)聽 方法中,如果監(jiān)聽的資源為sendfile 按鈕時(shí)。單擊發(fā)送按鈕的時(shí)候,發(fā)送文件線程類將用戶發(fā)送的文件以及接收文件的用戶信息轉(zhuǎn)交給 SendFileThread 這個(gè)類處理;它繼承了 Thread 線程類,在其 run 方法中, OutputStream 將文件轉(zhuǎn)化為字節(jié)流通過 Socket 傳送到服務(wù)器。由服務(wù)器轉(zhuǎn)發(fā)給指定的用戶接收文件。 查看好友和個(gè)人資料設(shè)計(jì) 在 SearchUserInfoAction 類中,通過判斷 searchType 判斷是查看好友資料還是個(gè)人資料。查看個(gè)人資料則類型為 0,好友資料則為 1。然后查找 用戶表,將查詢的信息顯示在用戶界面。畢業(yè)論文 15 第六章 系統(tǒng)具體實(shí)現(xiàn) 登陸系統(tǒng)的實(shí)現(xiàn) 在登陸時(shí),用戶需要輸入用戶名和密碼,服務(wù)器接收數(shù)據(jù)后進(jìn)行驗(yàn)證,如果正確,則可以登錄。本界面主要負(fù)責(zé)將用戶的信息包裝成一個(gè) Users 對(duì)象。注冊(cè)按鈕一旦被點(diǎn)擊,就會(huì)試圖創(chuàng)建一個(gè)與服務(wù)器端的連接。連接創(chuàng)建成功就會(huì)將填寫的信息發(fā)送到服務(wù)器端。如果服務(wù)器寫入數(shù)據(jù)庫成功,使用這個(gè)賬號(hào),用戶可以登陸到系統(tǒng)中。 圖 登陸界面 關(guān)鍵代碼 : // 點(diǎn)擊登錄時(shí) public void link() throws Exception { // 連接服務(wù)器 hostname = ().trim()。 port = (())。 Client = new Socket()。 ISocketAddress address = new ISocketAddress(hostname, port)。 (address, 8000)。// 設(shè)置八秒后登陸超時(shí)畢業(yè)論文 16 } 服務(wù)器端模塊功能實(shí)現(xiàn) 實(shí)現(xiàn)服務(wù)器 Swing 界面的類是 ServerManageFrame,作為聊天室系統(tǒng)的服務(wù)器,包含了客戶端接入以及處理其發(fā)出請(qǐng)求的一系列方法,是整個(gè)系統(tǒng)的核心,客戶發(fā)送的信息就是通過服務(wù)器轉(zhuǎn)發(fā)給其他用戶的。服務(wù)器端也可以廣播系統(tǒng)信息。 圖 服務(wù)器主界面設(shè)計(jì) 顯示在線用戶 當(dāng)有用戶登錄系統(tǒng)時(shí),將在線人數(shù)顯示在服務(wù)器,具體實(shí)現(xiàn)關(guān)鍵代碼如下: serverSocket = new ServerSocket(port)。 IAddress addr = ()。 (().toString())。 畢業(yè)論文 17 (())。 (() + )。 (50)。 (50 + 人 )。 int count = ().getSize()。 (count + 人 )。 公聊和私聊功能代碼實(shí)現(xiàn) 客戶端發(fā)送消息到服務(wù)器,如果是私聊,則加上字符串privateTrue;反之,加上字符串 privateFalse。這樣讓 服務(wù)器很容易的區(qū)分公聊、私聊操作。 if (privateTalkFlag) { outmsg = withWho + amp。 + privateTrue + amp。+ withWho + amp。 +words。 insert(myMsgArea, 您對(duì)『 + withWho + 』說 : + mywords)。 客戶端模塊功能實(shí)現(xiàn) 用戶登錄系統(tǒng)后,將進(jìn)入聊天系統(tǒng)主界面。整個(gè)界面布局采用window 風(fēng)格,客戶端聊天的主功能界面,用戶登陸后可以實(shí)現(xiàn)發(fā)送公聊信息、發(fā)送私 聊信息、接受服務(wù)器發(fā)送的系統(tǒng)信息;在線用戶相互之間可以發(fā)送接收對(duì)方傳來的文件,并且可以個(gè)人聊天記錄。 主界面是系統(tǒng)的核心部分。它可以列出所有好友和客戶所有加入畢業(yè)論文 18 的群,也可以提供文件傳輸功能。如果用戶服務(wù)雙擊好友分組或群,好友列表或群成員列表將會(huì)顯示出來。雙擊一個(gè)好友,可以與他進(jìn)行私聊。雙擊一個(gè)群成員,可以與群里的所有成員對(duì)話。本界面還提供了以下右鍵菜單:添加好友分組、查找好友并加為好友、查找群并加為群、創(chuàng)建群、移動(dòng)好友到其它分組、查看好友資料、查看群資料。 關(guān)鍵代碼如下: try { // 使用 Windows的界面風(fēng)格 ()。 } catch (Exception e) { ()。 } 客戶端主界面如下圖所示: 圖 畢業(yè)論文 19 圖 客戶端聊天主界面設(shè)計(jì) 客戶端接收發(fā)送消息功能代碼 如果是群聊,則調(diào)用 ChatServerThread 中的 sendMessageToAll發(fā)送到每一個(gè)客戶端。期間 會(huì)服務(wù)器獲取所有用戶,將信息發(fā)送給每一個(gè)在線的用戶。如果是私聊,服務(wù)器會(huì)根據(jù)用戶名查找是哪個(gè)用戶,再調(diào)用 sendMessageToOne方法將消息發(fā)送到指定客戶端。 圖 消息提示框 mywords = ()。 // 不能發(fā)送空消息也不能都發(fā)空格 畢業(yè)論文 20 if ((()).length() != 0) { if ((所有人 )) { insert(myMsgArea, myName + : + mywords)。 } else { // 對(duì)某個(gè)人交談 outmsg = withWho + amp。 + privateFalse + amp。 + withWho + amp。 + mywords。 if (privateTalkFlag) { outmsg = withWho + amp。 + privateTure + amp。 + withWho + amp。 + mywords。 insert(myMsgArea, 您對(duì)『 + withWho + 』說 : + mywords)。 } else { insert(myMsgArea, myName + 對(duì)『 + withWho + 』說 : + mywords)。 } } 用戶發(fā)送接收文件功能代碼 使用文件傳輸?shù)目蛻舳艘_配置好服務(wù)器的 IP和端口號(hào),以及下載好的文件的存放目錄。如果其中之一配置不好,文件下載將會(huì)失敗。設(shè)置好以后,點(diǎn)擊保存按鈕,如果配置正確,這時(shí)將會(huì)看到下載的文件。當(dāng)看到一個(gè)文件以后,可以雙擊該文件夾并查看文 件夾里面的文件。 畢業(yè)論文 21 圖 文件傳輸界面 用戶在界面雙擊要發(fā)送到的聯(lián)系人,勾選“私聊”選框后,把要發(fā)送的文件拖拽到“欲發(fā)送的文件”區(qū)域,點(diǎn)擊“發(fā)送文件”按鈕即可。若開始或中途想放棄傳送則可單擊“取消發(fā)送”按鈕。用戶點(diǎn)擊發(fā)送后,在悄悄話區(qū)域會(huì)告知接收者發(fā)來文件,若接收者接收則單擊“接收文件”按鈕,然后設(shè)定本地保存位置;若不接收則點(diǎn)擊“拒絕接收”按鈕。通過 Java多線程,將文件接收放在線程中處理。 圖 是否接收文件大小的友好提示 關(guān)鍵代碼如下: 接收文件線程處理類: AcceptFileThread In = 畢業(yè)論文 22 ()。 in = new DataInputStream(new BufferedInputStream(In))。 byte[] buf = new byte[8000000]。 // 創(chuàng)建網(wǎng)絡(luò)服務(wù)器接受客戶請(qǐng)求 = new ServerSocket()。 // 創(chuàng)建網(wǎng)絡(luò)輸出流并提供數(shù) 據(jù)包裝器 try { Out = ()。 doc=new DataOutputStream(new BufferedOutputStream(Out))。 } catch (IOException e1) { (發(fā)送文件創(chuàng)建網(wǎng)絡(luò)輸出流并提供數(shù)據(jù)包裝器異常 )。 } 畢業(yè)論文 23 第七章 系統(tǒng)功能測(cè)試 軟件測(cè)試是軟件開發(fā)過程中的一個(gè)重要組 成部分,是貫穿整個(gè)軟件開發(fā)生命周期、對(duì)軟件產(chǎn)品(包括階段性產(chǎn)品)進(jìn)行驗(yàn)證和確認(rèn)的活動(dòng)過程,其目的是盡快盡早地發(fā)現(xiàn)在軟件產(chǎn)品中所存在的各種問題—— 與用戶需求、預(yù)先定義的不一致性。 軟件測(cè)試技術(shù) 軟件測(cè)試的分類: 從是否需要執(zhí)行被測(cè)試軟件的角度分類(靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試)。 從測(cè)試是否針對(duì)軟件結(jié)構(gòu)與算法的角度分類(白盒測(cè)試和黑盒測(cè)試)。 從測(cè)試的不同階段分類(單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試、驗(yàn)收測(cè)試)。 本設(shè)計(jì)抽取其中部分功能進(jìn)行測(cè)試操作。 測(cè)試用戶注冊(cè)登錄 測(cè)試名稱:用戶登錄 客戶端功能:用戶 輸入昵稱、性別、服務(wù)器 IP和端口,與服務(wù)器建立連接,連接成功后登錄服務(wù)器,顯示客戶端主界面。 測(cè)試流程:用戶注冊(cè),填寫昵稱、性別、等個(gè)人信息。 用戶請(qǐng)求登錄。 客戶端檢查用戶填寫的內(nèi)容是否合法,如果未通過檢查,則提示用戶正確輸入。 客戶端程序向服務(wù)器發(fā)送連接請(qǐng)求,如果出現(xiàn)連接超時(shí),則提示畢業(yè)論文 24 用戶連接失敗。 服務(wù)器接收請(qǐng)求,連接成功。 服務(wù)器驗(yàn)證用戶名和性別,在列表顯示性別和用戶。 驗(yàn)證通過,顯示客戶端程序主窗體。 測(cè)試結(jié)果:按照上述測(cè)試流程,達(dá)到預(yù)期結(jié)果。 測(cè)試用戶聊天記錄 測(cè)試名稱:用戶聊天記錄查看 客戶端功能:查看用戶的聊天記錄。 測(cè)試流程:用戶登錄后,可以查看用戶的聊天記錄。 用戶請(qǐng)求查看聊天記錄。 測(cè)試結(jié)果:按照上述條件,正常完成操作 。 測(cè)試聊天及其文件傳送 測(cè)試名稱:聊天功能測(cè)試及文件傳送測(cè)試。 客戶端用戶通過發(fā)送聊天信息,服務(wù)器根據(jù)條件轉(zhuǎn)發(fā)信息給指定用戶??蛻舳擞脩粝蛑付ㄓ脩舭l(fā)送文件。 測(cè)試流程:用戶請(qǐng)求與某個(gè)在線用戶聊天。 用戶向服務(wù)器發(fā)送消息。 聊天信息發(fā)送至服務(wù)器。如果發(fā)送失敗,提示發(fā)送失敗。 服務(wù)器接收用戶發(fā)送的信息,轉(zhuǎn)發(fā)給指定的用戶。 用戶向指定用戶發(fā)送文件。 服務(wù)器接收請(qǐng) 求后,獲取文件路徑,轉(zhuǎn)發(fā)給指定用戶。 該用戶接收文件,保存指定位置。 文件保存成功。 取消接收文件。 畢業(yè)論文 25 提示文件被拒絕接收。 測(cè)試結(jié)果:聊天雙方可以正常通信。 服務(wù)器關(guān)閉后,提示服務(wù)器關(guān)閉。測(cè)試功能正常。 傳送文件中斷后,提示文件已經(jīng)中斷接收。文件發(fā)送成功后,成功保存文件,打開保存的文件,文件內(nèi)容完好。 文件傳送正常。 測(cè)試啟動(dòng)停止服務(wù)器服務(wù)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1