日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

C/S架构网络聊天软件——Java Chat Application 用java做一个聊天机器人

發(fā)布時間:2025/3/15 java 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C/S架构网络聊天软件——Java Chat Application 用java做一个聊天机器人 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

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中,以支持用戶注冊功能。

    // In ServerThread read the incoming message and hand it to SocketServerMessage msg = (Message) streamIn.readObject(); server.handle(ID, msg); .......// In SocketServer process the messages based on their typepublic synchronized void handle(int ID, Message msg){ if(msg.type.equals("login")){....}else id(msg.type.equals("message")){if(msg.recipient.equals("All")){ Announce("message", msg.sender, msg.content); }else{// Find the thread of recipient and forward it to him}} .......

    六、jMessenger

    ??jMessenger通過指定的ip地址和端口號連接到j(luò)Server。然后,到達的消息以及它們的發(fā)送者會顯示在留言板上。需要說明的是,在傳輸文件時,文件并不通過服務(wù)器,而是客戶端之間啟用單獨線程直接傳輸,這樣可以同時進行聊天和文件傳輸。jMessenger將消息記錄保存在History.xml中,可以查看聊天歷史記錄。

    當用戶想要發(fā)送文件時,首先他的請求是通過type消息發(fā)送的upload_req。收件人然后執(zhí)行以下操作:

  • 接收方以類型為消息的形式發(fā)送其答復(fù) upload_res
  • 如果請求被接受,那么收件人將打開一個新端口
  • 為了獲得肯定的答復(fù),收件人的IP地址和端口號將被發(fā)回。
  • 發(fā)件人在收到肯定答復(fù)后將連接到此套接字并開始文件上傳
    這種方法的優(yōu)點是客戶端可以同時聊天和傳輸文件。與消息不同,文件不會通過jServer。
  • // On recipient side, start a new thread for downloadDownload dwn = new Download(....); Thread t = new Thread(dwn); t.start(); send(new Message("upload_res", ui.username, dwn.port, msg.sender)); // Reply to sender with IP address and port number .........// On sender side, start a new thread for file upload// Connect to the port specified in reply Upload upl = new Upload(addr, port, ui.file, ui); Thread t = new Thread(upl); t.start();

    七、使用代碼

    代碼下載:點擊此處

    注意:一定要關(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)這樣的報錯

    lnformation: java:Errors occurred while compiling module 'ruanjianjiagou' lnformation: javac 1.8.0_191 was used to compile java sources Information: 2021/4/6 8:54 - Build completed with 1 error and 0 warnings in 5 s 190 msError: java:無效的源發(fā)行版: 13

    如圖:

    解決方式:選擇最上面一個,這里可以參考你自己當前已經(jīng)可以運行的項目,選一樣的就好了。

    最后再重啟下項目

    參考:

  • https://zhidao.baidu.com/question/569834641.html
  • https://baike.baidu.com/item/C/S%E5%88%86%E5%B8%83%E5%BC%8F%E6%A8%A1%E5%BC%8F/15231117
  • https://www.codeproject.com/Articles/524120/A-Java-Chat-Application
  • https://blog.csdn.net/weixin_41431935/article/details/112846365
  • https://blog.csdn.net/hanhanwanghaha寶藏女孩 歡迎您的關(guān)注!
    歡迎關(guān)注微信公眾號:寶藏女孩的成長日記
    讓這個可愛的寶藏女孩在努力的道路上與你一起同行!
    如有轉(zhuǎn)載,請注明出處(如不注明,盜者必究)

    創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

    總結(jié)

    以上是生活随笔為你收集整理的C/S架构网络聊天软件——Java Chat Application 用java做一个聊天机器人的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。