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

正文內(nèi)容

基于java的聊天室設(shè)計與實現(xiàn)畢業(yè)論文-文庫吧

2025-10-07 03:41 本頁面


【正文】 服務(wù)器端開啟的話,用戶可以隨時登錄 , 用戶可以向所有人或某一個 人發(fā)送消息。從而客戶與客戶之間以及客戶與服務(wù)器之間可以簡單方便地進行通信。 主要使用 Sun 公司提供 Java 語言、 jdk 開發(fā)環(huán)境及套接字通信 socket 技術(shù), 并利用 MyEclipse來進行開發(fā),來是實現(xiàn) 對服務(wù)器端和客戶端之間相互交流 的 功能。 2 1 課題總體介紹 項目開發(fā)的目的 本課題的研究主要目的是可以加深我們對 java 編程思想的理解,讓我們養(yǎng)成一個良好的項目開發(fā)的編程習慣,同時也是對我們所學的 java 編程的一個綜合提高。而對聊天室的開發(fā)也可以更好的理解 C/S 架構(gòu)開發(fā)的原理,能夠更加熟練的使用多線程、異常處理、 Socket 編程、輸入輸出流的使用。 項目開發(fā)的意義 根據(jù)當前網(wǎng)絡(luò)的需求,網(wǎng)絡(luò)聊天越來越受各種網(wǎng)民所青睞。因此開發(fā)網(wǎng)絡(luò)聊天是相當有必要,而且在網(wǎng)站內(nèi)增加聊天功能,它不僅可以提高網(wǎng)站的訪問量,同時可以留著訪客,更重要的是讓訪客透過聊天室實時的互相交流。而本人也學習過 JAVA 語言,對網(wǎng)絡(luò)編程也較有興趣,為了更好的考驗自己對 JAVA 語言的掌握程度,本人就決定以《 Java 聊天室》為畢業(yè)設(shè)計,希望通過這一次能進一步提高本人的網(wǎng)絡(luò)開發(fā)編程的能力。 3 2 總體設(shè)計 應(yīng)用需求分析 利用 Java 實現(xiàn)基于 C/S 模式的聊天程序,聊天系統(tǒng) 不外乎兩個方面,服務(wù)器端和客戶端。服務(wù)器端程序主要負責偵聽客戶端發(fā)來的消息,客戶端需登錄到服務(wù)端才可以實現(xiàn)正常的聊天功能。簡單分析一下兩個方面所要完成的任務(wù),對設(shè)計這個程序來說,等于完成了一半。首先來看一下服務(wù)器端的任務(wù): 服務(wù)器端的主要功能如下: ( 1) 在特定端口上進行偵聽,等待客戶端連接。 ( 2) 用戶可以配置服務(wù)端的偵聽端口,默認端口為 9999。 ( 3) 向已經(jīng)連接到服務(wù)端的用戶發(fā)送系統(tǒng)消息。 ( 4)可以啟動和關(guān)閉服務(wù)器。 以上就是服務(wù)器端最主要任務(wù)。不難看出,服務(wù)器端的任務(wù)并不復雜。 客戶端的主要功能如 下: ( 1) 連接到已經(jīng)開啟服務(wù)的服務(wù)端。 ( 2) 用戶可 以注冊賬號 。 ( 3) 用戶可以 通過注冊好的賬號登陸聊天室 。 ( 4) 用戶可以向所有人或某一個人發(fā)送消息。 相對服務(wù)器而言,客戶端的任務(wù)也不很復雜,有了以上的簡單分析,可以知道,解決上述問題,即完成了該聊天系統(tǒng)的核心。 聊天室設(shè)計好了,同時還需要數(shù)據(jù)庫的支持,數(shù)據(jù)庫的功能就是對用戶注冊的賬號和密碼進行管理,當用戶登錄時可以進行驗證。 4 模塊具體分析 模塊分析示意圖如圖 所示: 圖 模塊分析 服務(wù)器端模塊分析 服務(wù)器與客戶間通過套接口 Socket(TCP)連接。在 java 中使用套接口相當簡單, Java API 為處理套接口的通信提供了一個類 ,使得編寫網(wǎng)絡(luò)應(yīng)用程序相對容易。服務(wù)器采用多線程以滿足多用戶的請求,并通過創(chuàng)建一個 ServerSocket 對象來監(jiān)聽來自客戶的連接請求,默認端口為8888,然后無限循環(huán)調(diào)用 accept()方法接受客戶程序的連接。 客戶端模塊分析 客戶通過 Socket(IAddress,port)建立與服務(wù)器的連接。服務(wù)器與客戶都通過構(gòu)造 對象流 來建立輸入輸出流,然后雙方通過該輸 入輸出流來相互傳遞信息,一旦收到客戶方的連接請求,服務(wù)器accept()方法返回一個新建的 Socket 對象??蛻舳巳缓笙蚍?wù)器發(fā)送消息,服務(wù)器收到來自客戶的請求后,針對不同的消息處理請求。 數(shù)據(jù)庫模塊分析 數(shù)據(jù)庫用于管理用戶的信息,當用戶在注冊界面成功注冊了賬號,就存在數(shù)據(jù)庫的用戶表里面,當新用戶注冊時,將新賬號與數(shù)據(jù)庫中的賬號比較來驗證賬號是否純在,也可以驗證賬號密碼是否正確。 5 聊天室的具體實現(xiàn) 登錄界面的實現(xiàn) 登陸界面如圖 所示: 圖 聊天室的登陸界面 該界面用到 了 3個 Jlabel,分別是“聊天室登錄器”、“賬號”、“密碼”。用到了 1個 JTextFilet,1 個 JpasswordField,和 2 個 Jbuttton(登錄和注冊)。然后用網(wǎng)格包布局來管理這些控件。當填寫了正確的賬號和密碼后點擊登錄按鈕可以進入聊天界面,錯誤則提示“用戶名或密碼錯誤”:點擊注冊按鈕則可以進入注冊賬號的界面。 注冊界面的實現(xiàn) 注冊界面的實現(xiàn)如圖 所示: 圖 注冊界面 該界面主要用的了 4 個 Jlabel 分別是 4 個填寫文字的部分,然后一個 JtextField 和 2 個JpasswordField,用來填寫要注冊的賬號和密碼。這些控件被放入第一個 Jpanel 中,然后放于 Jframe的居中部分。然后 2 個按鈕放在了第二個 jpanel 中,放于 jframe 的南邊。 聊天界面的實現(xiàn) 聊天界面的實現(xiàn)如圖 所示: 圖 聊天界面 6 該界面的控件很少,用一個 JtextArea 來顯示用戶們的聊天內(nèi)容,該空間放在了居中部分。然后是在南邊有一個 JtextField 用來填寫用戶想說的話,然后點擊唯一的 Jbutton(發(fā)送),就可以發(fā)送自己說的話了。 服務(wù)器界面的實現(xiàn) 服 務(wù)器界面的實現(xiàn)如圖 所示: 圖 服務(wù)器界面 該界面只用到了 2個 Jbutton,用來啟動和關(guān)閉服務(wù)器。 服務(wù)器驗證登錄的實現(xiàn) 當用戶點擊了登錄界面的登錄按鈕之后,用戶填寫的賬號和密碼會發(fā)送到服務(wù)器進行驗證,如果賬號密碼正確,則向客戶端發(fā)送登錄成功的信息;如果賬號密碼不正確,則向客戶端發(fā)送信息并以客戶端為父窗口彈出子窗口提示說:“賬號或密碼錯誤 !”。 聊天功能的實現(xiàn) 用戶在聊天界面點擊發(fā)送按鈕后,消息發(fā)送到服務(wù)器,服務(wù)器的消息進行分析,如果是私聊,分析出發(fā)送這和接收者后,將 消息轉(zhuǎn)發(fā)給接收者。如果是發(fā)送給所有人,就遍歷管理服務(wù)器連接所有人線程的 hashmap,得到連接所有人的線程,將消息發(fā)送給所有人,而客戶端則遍歷管理所有人的聊天界面的 hashmap,得到所有人的聊天界面,將消息發(fā)送到所有人的界面上。 7 3 聊天室的詳細設(shè)計 開發(fā)環(huán)境的配置 JDK(Java Development kit)是 SUN 公司提供的一套 Java開發(fā)環(huán)境 ,通常稱之為它主要包括了一些常用的 JDK 工具、執(zhí)行時需要的函數(shù)庫、與 C 連接時所需的文件及一些 Java 應(yīng)用程序范例等。 JDK 可以從 SUN 公司的網(wǎng)站 或國內(nèi)一些常用的資料下載網(wǎng)站免費下載而得。下載完畢便可安裝 JDK。 在安裝完 JDK 之后,必須配置環(huán)境變量 classpath 和 path, JDK 才能夠正常運行。 ① .在環(huán)境變量中新建名為 classpath 的環(huán)境變量(如已經(jīng)存在則只要修 改),值為: E:\Program Files\Java\\lib ② .classpath 指明 Java 虛擬機要裝載類的路徑, “.” 表示當前目錄 ③ .在環(huán)境變量中新建名為 path 的環(huán)境變量(如已經(jīng)存在則只要修改),值為: E:\Program Files\Java\\jre\bin ④ .path 指明了操作系統(tǒng)查找 JDK 工具如 javac、 java 等文件的路徑 Sun 公司為程序開發(fā)者提供了編譯、測試、執(zhí)行程序等一套完備的工具體系,它們被集中存放在主目錄的 bin 目錄下。 開發(fā)的過程 開發(fā)的過程不是盲目的,要有清晰的思路。分好工作區(qū),建好要用到的包,如:界面就寫在名為 view 的包里面,后臺運行的類就寫在 model 包里面等。 類視圖 1 如圖 所示 : 圖 類視圖 1 這是服務(wù)器端的開發(fā), model 層中的類是在后臺運行 的程序, view 層中的類是服務(wù)器界面,啟動服務(wù)器其實是調(diào)用的 Server 類,這個類才是真正的服務(wù)器。而 SerConClientThread 類是服務(wù)器連接客戶端的線程類, 它的作用是接收客戶端發(fā)來的消息并且轉(zhuǎn)發(fā)出去。 ManageClientThread類是管理服務(wù)器連接客戶端線程的類,這個類用 HashMap 將服務(wù)器連接客戶端的所有線程管理了起來,方便調(diào)用。 同樣在客戶端的開發(fā)也是有良好的分層結(jié)構(gòu),如圖 所示 : 8 圖 類視圖 2 其中 view 層是 3 個界面類, Chat 是聊天界面類, ClientLogin 是 登陸界面類, Register 是登陸界面類。在這里我給大家介紹一下這些類得功能,在 model 層中的 ClientConServer 類是客戶端第一次連接服務(wù)器要調(diào)用的類,也就是登陸時要調(diào)用的類,將登陸的信息發(fā)給服務(wù)器驗證,同時創(chuàng)建一個連接服務(wù)器的線程。而 ClientUser 類是客戶端用戶類,當用戶點擊登錄是會調(diào)用這個類,然后由這個類調(diào)用 ClientConServer 類 。 在 tools 層中,這里和之前服務(wù)器端的 model 基本上是一個原理,服務(wù)器端管理了服務(wù)器連接客戶端的線程,這里也是用 ManageClientConServerThread 類來管理客戶端連接服務(wù)器端的線程的類ClientConServerThread。這里的客戶端連接服務(wù)器的線程類 ClientConServerThread 是用來讀取從服務(wù)器發(fā)來的消息,并顯示數(shù)來的。 ManageChat 則是將所有用戶的聊天界面放在一個 hashmap 里管理起來,當遍歷這個 hashmap 時,就可以將消息顯示在所有用戶的聊天界面了。 然后可以看見在服務(wù)器端和客戶端都有一個 mon 包,這個是公共包,里面 放的是一些 javaBean,里面有一些無參數(shù)的構(gòu)造器。它的存在使得客戶端 與服務(wù)器端的信息交互成為了可能。其中 Message 類里是發(fā)送信息時用到的構(gòu)造器, MessageType類里面是服務(wù)器驗證登錄后返回的信息, User類里面則是用戶賬號和密碼的構(gòu)造器。 而完成上面的所有類中的代碼,也是有一定的開發(fā)順序的,首先是完成 4 個界面的開發(fā)。 然后是實現(xiàn)各個界面上的控件的功能和客戶端與服務(wù)器的鏈接功能,先完成服務(wù)器,設(shè)置端口號,完成啟動服務(wù)器的功能;接著就是客戶端連接服務(wù)器的功能,再完成服務(wù)器對消息的驗證和對線程的創(chuàng)建和管理。 最后就是客戶端對消息的發(fā)送和接收以及服務(wù)器端對消息的接收驗證 和轉(zhuǎn)發(fā)。 聊天室功能的測試 ( 1)工作過程 首先啟動服務(wù)器,如果啟動成功,會再控制臺打印出“在 9999 端口監(jiān)聽”,然后再運行用戶登錄的類點擊注冊賬號,賬號注冊成功后再回到登錄界面進行登錄,點擊登錄按鈕就可以進入聊天室了。 ( 2)測試方法 根據(jù)工作過程,來啟動程序,如果在啟動某一程序時出現(xiàn)了錯誤,先查看錯誤信息,然后再啟動的程序的類里面尋找問題,并多使用 方法來打印一些提示的話語,方便自己知道程序運行到了哪一步,是從哪里開始程序沒再運行了,通過這樣的測試方法就可以慢慢的找到錯誤的根源,從而不斷完善聊天室的功能。 ( 3)聊天功能的測試 在測試聊天的功能時,主要是站在用戶的角度,看看聊天的功能是否真的實現(xiàn),因此,當程序 9 全部都成功啟動后,就可以注冊幾個賬號,同時登陸 2 到 3 個進入聊天室,讓他們相互聊天,在私聊和群聊里面都發(fā)送一些消息,看看是否達到了預期的效果。 10 結(jié) 論 (一) 畢業(yè)設(shè)計的總結(jié)和展望 本聊天室實現(xiàn)了簡單的實時聊天功能,經(jīng)過細心的調(diào)試和排錯解決了絕大部分的問題。但幾乎每一個計算機程序都會有這樣那樣的不足,尤其
點擊復制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1