版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Java聊天室項目展示Java聊天室程序用戶注冊、登錄與聊天室成員一起聊天、私聊服務(wù)器監(jiān)控聊天內(nèi)容。服務(wù)器發(fā)送通知。服務(wù)器踢人。保存服務(wù)器日志、用戶聊天信息。聊天室的主要功能用戶登錄顯示一個用于輸入昵稱的界面聊天群聊功能:在線用戶一起聊天發(fā)送悄悄話功能:與某個用戶單獨聊天刷新用戶列表:用于得到所有的用戶列表功能的具體實現(xiàn)Client端:顯示用戶登錄界面設(shè)置用戶名不能為空用戶名不為空時,顯示聊天室主窗口,連接服務(wù)器端用戶名為空時,顯示警告窗口用輸入/輸出流與服務(wù)器傳遞信息Server端:啟動服務(wù)器等待客戶端連接客戶端連接上后,啟動線程,等待客戶端發(fā)出信息對客戶端發(fā)出的信息進行處理,并發(fā)給客戶端客戶端1.用戶注冊界面及結(jié)果
2.用戶登錄界面及結(jié)果
3.用戶發(fā)送信息界面及結(jié)果
4.用戶得到信息界面及結(jié)果
5.用戶退出界面及結(jié)果
服務(wù)器端1.處理用戶注冊2.處理用戶登錄3.處理用戶發(fā)送信息4.處理用戶得到信息5.處理用戶退出程序簡介ChatLogin.java登陸界面將用戶信息發(fā)送到服務(wù)器ChatClient.java聊天室主程序完成數(shù)據(jù)的發(fā)送接收Enroll.java注冊界面完成新用戶的注冊Message.java封裝服務(wù)器與客戶端發(fā)送的信息Exit.java用戶關(guān)閉窗口時詢問是否退出ChatServer.java聊天室的服務(wù)端Message.java封裝服務(wù)器與客戶端發(fā)送的信息Exit.java用戶關(guān)閉窗口時詢問是否退出服務(wù)器客戶端系統(tǒng)實現(xiàn)原理當用戶聊天時,將當前用戶名、聊天對象、聊天內(nèi)容和是否私聊進行封裝,然后與服務(wù)器建立Socket連接,再用對象輸出流包裝Socket的輸出流將聊天信息對象發(fā)送給服務(wù)器端
當用戶發(fā)送聊天信息時,服務(wù)端將會收到客戶端用Socket傳輸過來的聊天信息對象,然后將其強制轉(zhuǎn)換為Chat對象,并將本次用戶的聊天信息對象添加到聊天對象集Message中,以供所有聊天用戶訪問。
接收用戶的聊天信息是由多線程技術(shù)實現(xiàn)的,因為客戶端必須時時關(guān)注更新服務(wù)器上是否有最新消息,在本程序中設(shè)定的是3秒刷新服務(wù)器一次,如果間隔時間太短將會增加客戶端與服務(wù)器端的通信負擔,而間隔時間長就會讓人感覺沒有時效性,所以經(jīng)過權(quán)衡后認為3秒最佳,因為每個用戶都不可能在3秒內(nèi)連續(xù)發(fā)送信息。
當每次用戶接收到聊天信息后將會開始分析聊天信息然后將適合自己的信息人性化地顯示在聊天信息界面上。
用戶登陸界面定義Login類屬性: JFrameframe主窗口 JTextFieldfield1接收用戶名 JButtonbutton1登錄按鈕 JButtonbutton2取消按鈕方法:init():組合組件; addActionHandler():事件監(jiān)聽方法內(nèi)部類:Window用戶名為空時的彈出窗口聊天室圖形界面
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實現(xiàn)輸出流的類 RecvThread實現(xiàn)輸入流的類MyWindow用于發(fā)送悄悄話的窗口1.與聊天室成員一起聊天。
2.可以與聊天室成員私聊。服務(wù)器端口集合list存儲每一個Myclient。開啟一個線程,每當接收到消息時遍歷list向所有客戶端發(fā)送消息:for(inti=0;i<list.size();i++){list.get(i).pw.println(name+"說:"+message);list.get(i).pw.flush();當new一個sockt后,則向服務(wù)器發(fā)送name;消息的接收:開啟一個線程,負責(zé)接收服務(wù)器發(fā)來的message;消息的發(fā)送:文本輸入框tf和按鈕send添加一個ActionListener,當按回車或send是將消息發(fā)送給服
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度年福建省高校教師資格證之高校教師職業(yè)道德全真模擬考試試卷A卷含答案
- 2024年xx村年度脫貧戶、監(jiān)測戶增收工作總結(jié)
- 牛津譯林版英語高三上學(xué)期期末試題及答案指導(dǎo)
- 機電工程師招聘面試題與參考回答(某大型國企)
- 新修訂《疫苗流通和預(yù)防接種管理條例》培訓(xùn)試題及答案
- 2024年簡化貨品采購協(xié)議格式
- 2024年限定區(qū)域分銷商協(xié)議條款
- 2024年度工程領(lǐng)域勞務(wù)協(xié)議范本
- 2024年新汽車租賃經(jīng)營協(xié)議樣本
- 2024全新保健品商業(yè)合作協(xié)議樣本
- 山東省濟南市歷下區(qū)2023-2024學(xué)年八年級上學(xué)期期中語文試題
- 圖神經(jīng)網(wǎng)絡(luò)在生物醫(yī)學(xué)影像分析中的應(yīng)用
- 淺談管理者的自我管理
- 第一章 結(jié)構(gòu)及其設(shè)計 課件-2023-2024學(xué)年高中通用技術(shù)蘇教版(2019)必修《技術(shù)與設(shè)計2》
- 語文教學(xué)常規(guī)檢查表
- “思政”課社會實踐
- 臨時用電漏電保護器運行檢測記錄表
- 復(fù)雜性尿路感染
- 重度殘疾兒童送教上門
- 膀胱癌綜合治療新進展
- 音樂ppt課件《小小的船》
評論
0/150
提交評論