C/S架构网络聊天软件——Java Chat Application 用java做一个聊天机器人
Fighting!
- 一、C/S概念
- 1.1 什么是C/S
- 1.2 C/S與B/S的區(qū)別
- 二、主頁面
- 三、介紹
- 四、特征
- 五、jServer
- 六、jMessenger
- 七、使用代碼
- 7.1 導(dǎo)入項目后報錯情況
- 7.2 解決辦法
一、C/S概念
1.1 什么是C/S
??C/S分布式模式,是計算機用語。C是指Client,S是指Server,C/S模式就是指客戶端/服務(wù)器模式。是計算機軟件協(xié)同工作的一種模式,通常采取兩層結(jié)構(gòu)。服務(wù)器負責數(shù)據(jù)的管理,客戶機負責完成與用戶的交互任務(wù)。
1.2 C/S與B/S的區(qū)別
C/S模式是一種兩層結(jié)構(gòu)的系統(tǒng),第一層是在客戶端上安裝客戶端應(yīng)用程序,第二層是在服務(wù)器上安裝應(yīng)用服務(wù)器。在C/S模式的工作過程中,客戶端程序請求,服務(wù)器程序接收并處理客戶端程序請求,并返回結(jié)果。
B/S模式,即瀏覽器/服務(wù)器模式,是在傳統(tǒng)的兩層C/S模式基礎(chǔ)上發(fā)展起來的一種新的網(wǎng)絡(luò)結(jié)構(gòu)模式,其本質(zhì)是三層C/S模式。
在用戶的計算機上安裝瀏覽器軟件,在服務(wù)器上存儲數(shù)據(jù),安裝服務(wù)應(yīng)用程序,如WWW服務(wù)器和文件服務(wù)器。用戶通過瀏覽器訪問服務(wù)器,以進行信息瀏覽、文件傳輸和電子郵件服務(wù)。
兩者區(qū)別如下:
一、指代不同
C/S:就是指客戶端/服務(wù)器模式。是計算機軟件協(xié)同工作的一種模式,采取兩層結(jié)構(gòu)。服務(wù)器負責數(shù)據(jù)的管理,客戶機負責完成與用戶的交互任務(wù)。
B/S:是WEB興起后的一種網(wǎng)絡(luò)結(jié)構(gòu)模式,WEB瀏覽器是客戶端最主要的應(yīng)用軟件。
二、原理不同
C/S:客戶端運行應(yīng)用程序,服務(wù)器端運行服務(wù)程序。應(yīng)用程序向服務(wù)程序發(fā)出一個應(yīng)用程序。
B/S:統(tǒng)一客戶端,將系統(tǒng)功能實現(xiàn)的核心部分集中到服務(wù)器,簡化系統(tǒng)的開發(fā)、維護和使用。只需在客戶機上安裝一個瀏覽器,如NetscapeNavigator或InternetExplorer,服務(wù)器就會安裝SQLServer、Oracle、MYSQL等數(shù)據(jù)庫。瀏覽器通過Web服務(wù)器與數(shù)據(jù)庫交互。
三、優(yōu)勢不同
C/S:可以充分發(fā)揮客戶端PC的處理能力,很多工作經(jīng)過客戶端處理后可以提交給服務(wù)器。相應(yīng)的優(yōu)點是客戶端響應(yīng)速度快。
B/S:總擁有成本低,維護方便,分布強,開發(fā)簡單。它可以在任何地方操作,而不需要安裝任何特殊的軟件。
二、主頁面
視頻演示:
https://www.bilibili.com/video/BV1Dv41187eW?pop_share=1
代碼下載:
百度網(wǎng)盤鏈接:https://pan.baidu.com/s/1tpVFoOM5XcrKQbM7xf0HNA
提取碼:8888
或者源地址:https://www.codeproject.com/Articles/524120/A-Java-Chat-Application
三、介紹
??在本文中,將演示一個聊天應(yīng)用程序,它可以同時處理多個用戶。它還支持文件傳輸。
它完全基于Java,由兩部分組成:jMessenger(客戶端應(yīng)用程序)和jServer(服務(wù)器應(yīng)用程序)。
四、特征
五、jServer
??jServer主要有兩個類分別處理連接和消息:
在啟動時SocketServer單獨運行在一個線程中,它會監(jiān)聽是否有客戶端連接服務(wù)器,一旦發(fā)現(xiàn)客戶端jServer就會創(chuàng)建一個單獨的線程去運行ServerThread。
??ServerThread創(chuàng)建后就會持續(xù)的監(jiān)聽來自客戶端的消息,并將消息交由SocketServer處理。同樣,它支持將來自客戶端的消息轉(zhuǎn)發(fā)到其他客戶端。jServer將客戶端用戶名和密碼保存在data.xml中,以支持用戶注冊功能。
六、jMessenger
??jMessenger通過指定的ip地址和端口號連接到j(luò)Server。然后,到達的消息以及它們的發(fā)送者會顯示在留言板上。需要說明的是,在傳輸文件時,文件并不通過服務(wù)器,而是客戶端之間啟用單獨線程直接傳輸,這樣可以同時進行聊天和文件傳輸。jMessenger將消息記錄保存在History.xml中,可以查看聊天歷史記錄。
當用戶想要發(fā)送文件時,首先他的請求是通過type消息發(fā)送的upload_req。收件人然后執(zhí)行以下操作:
這種方法的優(yōu)點是客戶端可以同時聊天和傳輸文件。與消息不同,文件不會通過jServer。
七、使用代碼
代碼下載:點擊此處
注意:一定要關(guān)防火墻
https://blog.csdn.net/hanhanwanghaha寶藏女孩 歡迎您的關(guān)注!
歡迎關(guān)注微信公眾號:寶藏女孩的成長日記
讓這個可愛的寶藏女孩在努力的道路上與你一起同行!
如有轉(zhuǎn)載,請注明出處(如不注明,盜者必究)
7.1 導(dǎo)入項目后報錯情況
用IDEA導(dǎo)入項目后java項目不能運行,像這樣
7.2 解決辦法
查看sdk是否設(shè)置: File > Project Structure > Project
IDEA不能自動對源代碼識別出來src目錄,需要我們進行手動設(shè)置:
src目錄=》右鍵 > make Directory as > Source Root
于是我又報了一個錯:
Cannot start compilation: the output path is not specified for module "ruanjianjiagou". Specify the output path in the Project Structure dialog.
點擊OK
在Modules設(shè)置里勾選”Inherit project compile path”
設(shè)置Project中的”Project compiler output
我在運行時又出現(xiàn)這樣的報錯
如圖:
解決方式:選擇最上面一個,這里可以參考你自己當前已經(jīng)可以運行的項目,選一樣的就好了。
最后再重啟下項目
參考:
https://blog.csdn.net/hanhanwanghaha寶藏女孩 歡迎您的關(guān)注!
歡迎關(guān)注微信公眾號:寶藏女孩的成長日記
讓這個可愛的寶藏女孩在努力的道路上與你一起同行!
如有轉(zhuǎn)載,請注明出處(如不注明,盜者必究)
總結(jié)
以上是生活随笔為你收集整理的C/S架构网络聊天软件——Java Chat Application 用java做一个聊天机器人的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linq 左连接 left join
- 下一篇: Java api在线