




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Java聊天室工程展示Java聊天室程序用戶注冊(cè)、登錄與聊天室成員一起聊天、私聊效勞器監(jiān)控聊天內(nèi)容。效勞器發(fā)送通知。效勞器踢人。保存效勞器日志、用戶聊天信息。聊天室的主要功能用戶登錄顯示一個(gè)用于輸入昵稱的界面聊天群聊功能:在線用戶一起聊天發(fā)送悄悄話功能:與某個(gè)用戶單獨(dú)聊天刷新用戶列表:用于得到所有的用戶列表功能的具體實(shí)現(xiàn)Client端:顯示用戶登錄界面設(shè)置用戶名不能為空用戶名不為空時(shí),顯示聊天室主窗口,連接效勞器端用戶名為空時(shí),顯示警告窗口用輸入/輸出流與效勞器傳遞信息Server端:?jiǎn)?dòng)效勞器等待客戶端連接客戶端連接上后,啟動(dòng)線程,等待客戶端發(fā)出信息對(duì)客戶端發(fā)出的信息進(jìn)行處理,并發(fā)給客戶端客戶端1.用戶注冊(cè)界面及結(jié)果
2.用戶登錄界面及結(jié)果
3.用戶發(fā)送信息界面及結(jié)果
4.用戶得到信息界面及結(jié)果
5.用戶退出界面及結(jié)果
服務(wù)器端1.處理用戶注冊(cè)2.處理用戶登錄3.處理用戶發(fā)送信息4.處理用戶得到信息5.處理用戶退出程序簡(jiǎn)介ChatLogin.java登陸界面將用戶信息發(fā)送到服務(wù)器ChatClient.java聊天室主程序完成數(shù)據(jù)的發(fā)送接收Enroll.java注冊(cè)界面完成新用戶的注冊(cè)Message.java封裝服務(wù)器與客戶端發(fā)送的信息Exit.java用戶關(guān)閉窗口時(shí)詢問是否退出ChatServer.java聊天室的服務(wù)端Message.java封裝服務(wù)器與客戶端發(fā)送的信息Exit.java用戶關(guān)閉窗口時(shí)詢問是否退出效勞器客戶端系統(tǒng)實(shí)現(xiàn)原理當(dāng)用戶聊天時(shí),將當(dāng)前用戶名、聊天對(duì)象、聊天內(nèi)容和是否私聊進(jìn)行封裝,然后與效勞器建立Socket連接,再用對(duì)象輸出流包裝Socket的輸出流將聊天信息對(duì)象發(fā)送給效勞器端
當(dāng)用戶發(fā)送聊天信息時(shí),效勞端將會(huì)收到客戶端用Socket傳輸過來的聊天信息對(duì)象,然后將其強(qiáng)制轉(zhuǎn)換為Chat對(duì)象,并將本次用戶的聊天信息對(duì)象添加到聊天對(duì)象集Message中,以供所有聊天用戶訪問。
接收用戶的聊天信息是由多線程技術(shù)實(shí)現(xiàn)的,因?yàn)榭蛻舳吮仨殨r(shí)時(shí)關(guān)注更新效勞器上是否有最新消息,在本程序中設(shè)定的是3秒刷新效勞器一次,如果間隔時(shí)間太短將會(huì)增加客戶端與效勞器端的通信負(fù)擔(dān),而間隔時(shí)間長(zhǎng)就會(huì)讓人感覺沒有時(shí)效性,所以經(jīng)過權(quán)衡后認(rèn)為3秒最正確,因?yàn)槊總€(gè)用戶都不可能在3秒內(nèi)連續(xù)發(fā)送信息。
當(dāng)每次用戶接收到聊天信息后將會(huì)開始分析聊天信息然后將適合自己的信息人性化地顯示在聊天信息界面上。
用戶登陸界面定義Login類屬性: JFrameframe主窗口 JTextFieldfield1接收用戶名 JButtonbutton1登錄按鈕 JButtonbutton2取消按鈕方法:init():組合組件; addActionHandler():事件監(jiān)聽方法內(nèi)部類:Window用戶名為空時(shí)的彈出窗口聊天室圖形界面
GUIChatRoom屬性privatefinalJFramemainf;privateJOptionPanejop;//昵稱輸入框privateJPanelsouthp;privateJPaneleastp,eastp2;privateJTextAreaarea;privateJTextFieldfield;privateJComboBoxbox;privateJScrollPanescroll,eastscr;privateJLabeleastl,southl1,southl2;privateJButtonsend;聊天室窗口組件:JFrame、JTextField、JTextArea、List、JButton、JLabel方法:init():組件組合;showMe():顯示窗口;addActionHandler():事件監(jiān)聽內(nèi)部類:TFListener實(shí)現(xiàn)輸出流的類 RecvThread實(shí)現(xiàn)輸入流的類MyWindow用于發(fā)送悄悄話的窗口1.與聊天室成員一起聊天。
2.可以與聊天室成員私聊。效勞器端口集合list存儲(chǔ)每一個(gè)Myclient。開啟一個(gè)線程,每當(dāng)接收到消息時(shí)遍歷list向所有客戶端發(fā)送消息:for(inti=0;i<list.size();i++){list.get(i).pw.println(name+"說:"+message);list.get(i).pw.flush();當(dāng)new一個(gè)sockt后,那么向效勞器發(fā)送name;消息的接收:開啟一個(gè)線程,負(fù)責(zé)接收效勞器發(fā)來的message;消息的發(fā)送:文本輸入框tf和按鈕send添加一個(gè)ActionListener,當(dāng)按回車或send是將消息
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 光伏電站個(gè)人年終總結(jié)模版
- 從概念到落地探討如何利用區(qū)塊鏈推動(dòng)企業(yè)數(shù)字化轉(zhuǎn)型
- 倉庫廠房加盟合同范例
- 2025年初中數(shù)學(xué)教師年度考核個(gè)人總結(jié)模版
- 低價(jià)漁具轉(zhuǎn)讓合同范例
- 中介住宅租賃合同范例
- 在家長(zhǎng)會(huì)上的小學(xué)生發(fā)言稿模版
- 創(chuàng)新研發(fā)背景下科技企業(yè)市場(chǎng)擴(kuò)張風(fēng)險(xiǎn)控制策略
- 中英雙語購銷合同范例
- 醫(yī)療大數(shù)據(jù)時(shí)代的醫(yī)療質(zhì)量管理
- 燃?xì)馄髽I(yè)壟斷風(fēng)險(xiǎn)的控制節(jié)點(diǎn)
- 2023-2024學(xué)年人教版數(shù)學(xué)八年級(jí)下冊(cè)期末復(fù)習(xí)試卷
- 工程人合伙協(xié)議書范本
- 第18課《在長(zhǎng)江源頭各拉丹東》課件+2023-2024學(xué)年統(tǒng)編版語文八年級(jí)下冊(cè)
- 造紙化學(xué)品3課件
- 第五章-包裝容器造型設(shè)計(jì)
- MOOC 介入放射學(xué)-東南大學(xué) 中國(guó)大學(xué)慕課答案
- 數(shù)字貿(mào)易學(xué) 課件 第1章 導(dǎo)論
- 廣東省省級(jí)政務(wù)信息化(2024年第一批)項(xiàng)目需求-廣東省財(cái)政廳業(yè)務(wù)系統(tǒng)運(yùn)維運(yùn)營(yíng)服務(wù)(2024年)項(xiàng)目
- 寄拍行業(yè)分析
- 培訓(xùn)地坪漆課件
評(píng)論
0/150
提交評(píng)論