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

正文內容

畢業(yè)設計(論文)-基于java的多人聊天室設計-文庫吧

2025-05-16 06:05 本頁面


【正文】 都運行的現(xiàn)象就稱之為并發(fā),但絕對不是真正意義上的“同時發(fā)生”。 在多人聊天室中我們把這個技術運用到用戶聊天這個功能當中,實現(xiàn)用戶的群聊和私聊。 TCP/IP 協(xié)議 TCP/IP( Transmission Control Protocol/Inter Protocol)的簡寫,包含了一系列構成互聯(lián)網基礎的網絡協(xié)議。這些協(xié)議最早發(fā)源于美國國防部的DARPA 互聯(lián)網項目。 TCP/IP 字面上代表了兩個協(xié)議 :TCP 傳輸控制協(xié)議和 IP 互聯(lián)網協(xié)議。 TCP/IP 協(xié)議并不完全符合 OSI 的七層參考模型。傳統(tǒng)的開放式系統(tǒng)互連參考模型,是一種通信協(xié)議的 7 層抽象的參考模型 ,其中每一層執(zhí)行某一特定任務。該模型的目的是使各種硬件在相同的層次上相互通信。這 7 層是 :物理層、數據鏈路層、網路層、傳輸層、話路層、表示層和應用層。而 TCP/IP 通訊協(xié)議采用了 4 層的層級結構,每一層都呼 叫它的下一層所提供的網絡來完成自己的需求。這 4 層分別為:應用層 、 傳輸層、互連網絡層、網絡接口層。 在多人聊天室中則是在這種協(xié)議基礎上實現(xiàn)的彼此之間的信息交流 。 java Soket 技術 Socket“套接字”, 它在 包下。網絡通信模型: C/S:client/server,客戶端 /服務器端 ,B/S:browser/server,瀏覽器端和服務端。C/S 結構的優(yōu)點,應用性強,畫面比較多樣和絢麗。用用功能復雜。缺點:不易維護, B/S 結構的優(yōu)點:易于維護,缺點:效果差,交互 性不強。 Socket 封裝這本地的地址,服務端口等信息, ServerSocket:服務端套接字。永遠都是 socket主動去連接 ServerSocket,一個 ServerSocket 可以連接若干個 Socket。網絡通信的前提,一定要捕獲異常,然后進行對異常處理。 在多人聊天室中我們使用 Soket 套接字發(fā)送或則應答網絡請求,同時綁定和監(jiān)聽 7788 網絡端口。亦通過 Soket 獲取網絡輸出流和網絡輸入流,在創(chuàng)建了Client 和 Servlet 的連接后即可通過輸出和輸入流實現(xiàn)網絡通訊。 java 數據流技術 Java 提供了一個可以對文件隨機訪問的操作,訪問包括讀和寫操作。該類名為 RandomAccessFile。該類的讀寫是基于指針的操作。 RandomAccessFile 在對文件進行隨機訪問操作時有兩個模式,分別為只讀模式 (只讀取文件數據 ),和讀寫模式 (對文件數據進行讀寫 )。 流根據方向分為輸入和輸出流,方向的定位是根據我們的程序的,流向我們程序的稱為輸入流,從程序往外流的我們稱為輸出流。輸入流是用于獲取數據的,輸出流是用于往外輸出數據的。 FileInputStream:通過打開一個到實際文件的連接來創(chuàng)建一個 FileInputStream,該文件通過系統(tǒng)中的 File 對象指定,即向文件中輸入數據。 FileOutputStream,創(chuàng)建一個向指定文件對象中寫入數據的文件輸出流,會重寫以前的內容,向 File 文件中輸入內容時,若該文件不存在,將會自動創(chuàng)建該文件。 在多人聊天室軟件中,我們主要是將文件輸出和文件輸入流運用到登錄和注冊、注冊檢驗和登錄檢驗,以及信息的發(fā)送和接受中。 java 圖形界面編程技術 圖形界面編程技術它所使用的包是放在 包下面的AWT(Abstract Window Toolkit),即為抽象窗口工具包,是由 sun公司提供使用的用于圖像界面編程 (gui)的一個包。基礎的使用就是創(chuàng)建一個 label對象,然后調用它的方法,使用工具包來創(chuàng)建對象,易啊不能來說,我們所開發(fā)的界面是可以在所有的操作系統(tǒng)上所使用的,這可以節(jié)省我們很多的麻煩。 在多人聊天室系統(tǒng)中,我們在設計聊天室的登錄、注冊和聊天窗口中我們都運用到了 java 圖形界面編程技術。 軟件系統(tǒng)工作原理 Java 多人聊天室是基于 TCP/IP 協(xié)議的基礎上設計的一種采用 C/S 模式的可實現(xiàn)多人聊天和傳輸文件的軟件,在這個軟件中我 們采用了圖形界面編程技術設計實現(xiàn)了軟件的登錄和注冊、聊天窗口,達到了軟件的美化效果。用戶的注冊和登錄檢驗以及信息的發(fā)送和接受我們是運用到了 java 的數據 流技術,通過 java 文件輸出和輸入流獲取指定文件中用戶的信息從而檢驗用戶名和密碼是否正確,以及通過 Soket 運用字符流的輸入和輸出接受和發(fā)送用戶的信息,從而達到用戶之間的通訊和交流。通過 java 的多線程技術我們實現(xiàn)了用戶的群聊和私聊功能,從而滿足了用戶的兩種不同需求。在Servlet 方面,我們首先通過 Socket 建立服務器和客戶端之間的連接,創(chuàng)建 Soket 實 例,使用 ServletSoket 監(jiān)聽端口,獲取用戶狀態(tài)以及用戶的網絡發(fā)送請求和應答請求,在本文并沒有過多實現(xiàn)服務器端的功能,所以服務器端只是一個文件和數據的中轉站和傳輸站。 第 3 章 關于多人聊天室的 分析 和設計 系統(tǒng) 可行性分析 Java 語言,它是一種方便我們去理解也方便我們去設計和開發(fā)的編程語言,它相較于其他的編程語言,有許多別的不具有的優(yōu)勢,這種編程語言是比較簡單的,它不受限與操作系統(tǒng)平臺,然后它是在 C++的基礎上進化過來的,所以它的身上還有很多 C 語言的痕跡, java 語言相對 于別的編程語言它是出現(xiàn)的比較晚的,這也決定了他的先進性。這也就體現(xiàn)了 java 語言的通用性和便捷性,使我們不需要為了在不同的平臺運行而去修改程序煩惱,這大大提高了我們程序和代碼的重用性,也同時提高了我們編程的效率, 不過,每次的編譯執(zhí)行需要消耗一定的時間,這同時也在一定程度上降低了 Java 程序的運行效率。但在 J2SE 發(fā)布后, java 編程語言它到現(xiàn)在為止是比較完善的、先進的、便于掌握的、便于開發(fā)的, 這也就是 java 語言風靡全球的原因所在,所以這個多人聊天室軟件就是采用的 java 語言而實現(xiàn)開發(fā)設 計的,在通過 myeclipse 我的設計過程中大大提高了我的工作效率,也同時幫我解決了一些 API 不熟練的問題,作為一款輔助編程工具, myeclipse 在 java 開發(fā)這個行業(yè)類普及率是非常高的, 而 Soket 是進行網絡通信編程的一種強大的 API,也是諸多操作系統(tǒng)的網絡通用標準。本系統(tǒng) 主要分為兩大部分: TCP/IP Server和客戶端 client以下就是客戶端 Client和 Server 服務器端的程序運行模塊圖 : 客戶端功能 實現(xiàn) 分析 客戶端的主要功能還是提供用戶之間的聊天服務和文 件傳輸服務,但是我們會通過注冊頁面和登錄頁面先進行用戶驗證,然后在用戶列表界面我們找到好友進行通訊,我們可以選擇私聊和群聊,也可以向另一個用戶傳輸文件和資料,下面進行詳細分析。 登錄 界面上 ,將會顯示兩個用戶輸入框,一個是用戶輸入框和用戶密碼輸入框。在用戶 輸入完 用戶 信息之后, 雙擊 登 陸 按鈕,客戶端 Client 將會 開始 和Server 服務器進 行連接 ,在 Server 和 Client 鏈接 過程中,首先會檢查 Server服務器是否啟動,亦或者是服務器網絡是否暢通,客戶端 Client 和 Server 服務器端連接是 否成功,如果客戶端 Client 和 Server 沒有連接成功,登錄界面會給出一個友好的提示框,提示用戶服務器沒有啟動或者服務器 Server 連接錯誤。其次在客戶端會通過圖形界面編程的 API 獲取用戶在登陸界面輸入的用戶名 和用戶密碼,通過數據流傳輸到服務器,將 Client 傳送過來的用戶帳號和用戶密碼和 Server 端的文件所存儲的用戶名和密碼相對照,如果用戶昵稱和用戶密碼都輸入正確,提示登陸成功,將用戶轉到聊天窗口界面。反之則會彈出提示用戶昵稱或者用戶密碼輸入錯誤,提示用戶重新輸入用戶信息。 用戶列 表信息 界面 是要在成功登錄后 , 彈出的一個展示用戶的好友信息的一個列表,在上面有一個群聊按鈕,點擊群聊按鈕將會彈出群聊窗口進行多人聊天,也可以雙擊好友昵稱進行私聊,這個功能是通過界面的點擊事件,然后傳遞信息的,觸發(fā)事件之后通過數據流和節(jié)點處理進行分析和處理,從而判斷用戶是否要使用私聊或者使用群聊。 聊天窗口 界面 也是作為這個多人 聊天室軟件的主界面,在這個 界面 ,用戶可以進行多人聊天和私聊。也可以向另一個用戶發(fā)送文件和資料,在聊天窗口界面上有一個傳輸文件按鈕,點擊即可從電腦上選擇文件傳輸給另一個用戶,在這里我們首先是采用 socket 建立 Client 和 Server 的信息連接,這樣多個客戶端之間才能通過 Server 傳遞消息,其中客戶端和服務端的發(fā)送和接受信息都是要通過 I/O 流進行解析和傳遞復制信息的,每個客戶端對應一個線程進行處理這個客戶端的所有事務,客戶端對 應線程會處理服務器端傳輸過來的信息然后傳遞給用戶顯示在用戶聊天界面,所以采用了多線程技術,客戶端不僅要接受服務端傳輸過來的信息,也要對服務器進行信息反饋,所以要有一個專門的線程給服務端服務。傳輸文件的話我們主要是運用到 I/O 流這個技術的,通過字符流和字 符緩沖流我們將文件逐行讀取解析復制,然后通過字節(jié)流和字 節(jié)輸出流將所讀取到的字符解析成字節(jié),輸入到同一名稱的文件中給用戶。 服務器 端系統(tǒng) 分析 服務器端的的主要作用通過 ServerSocket 在服務器上建立一個服務器端口號,通過 Socket 使用這個 Socket 端口號將客戶端與服務器端相連接。從而通過socket 獲取從客戶端讀取的數據進行分析處理,最后將處理解析結果反饋給客戶端,比如,用戶登錄時,通過 soket 將用戶名和用戶密碼傳遞給服務器端,服務器端再將客戶端傳遞過來的數據和存儲在文件中的數據進行對比,如果數據相符合則服務器返回結果,從而跳轉到用戶信息列表界面,如果驗證失敗,則彈出相應提示,重新登陸。 用戶之間的信息傳輸也是通過服務器端的中轉處理,然后通過線程和 I/O 流傳輸給另一個用戶,服務器端還有一個作用就是存儲和中轉用戶的信息和資料,通過線程獲取客 戶端信息,然后從 Soket 那里得到用戶要傳遞和存儲的信息,使用 I/O 流進行處理分析,最后存儲到文件中或傳遞給用戶。 為了讓我們更好的了解和設計多人聊天室這個軟件,也更好的開發(fā)和維護這個軟件,我們根據客戶端和服務器端的功能模塊之間的邏輯關系給出了一個流程圖,這個流程圖主要是分為服務器端和客戶端兩個部分,服務器端我們從建立ServerSoket 端口號開始進行解析,到線程死亡結束,客戶端我們從登陸界面開始到用戶關閉聊天窗口結束。 根據流程圖我們可以得出用戶首先要通過登錄界面 成功通過用戶名和用戶密碼的驗證,就可以成功進入聊天室進行多人聊天和用戶私聊,如果沒有帳號,則需要通過注冊將用戶信息存儲到服務器端,然后登錄。出現(xiàn)幾個客戶端時,服務端就會才用多線程技術,這樣客戶端與客戶端的信息才不會出現(xiàn)混淆,而服務器端也有一個線程進行專門管理客戶端反饋過來的信息,進而提高服務器的處理效率。 第 4 章 系統(tǒng)實現(xiàn) 客戶端 界面和功能 實現(xiàn) 登錄 和注冊 界面 登錄界面 登陸界面關鍵代碼 public class Login { private JFrame jFrame = null。 private JPanel jContentPane = null。 private JLabel jLabelLoginUserName = null。 private JLabel jLabelLoginPassword = null。 private JTextField jTextFieldLoginUserName = null。 private JPasswordField jTextFieldLoginPassword = null。 public JButton jButtonLogin = null。 public JButton jButtonReg = null。 private LinkInfo linkInfo。 private InputStream in。 private OutputStream out。 private GetServerInfo gif。 public Login(LinkInfo linkInfo){ = linkInfo。 ().setVisible(true)。 } /** * This method initializes jFrame * * @return */ public void closeFrame(){ ()。 (null)。 } private JFrame getJFrame() { if (jFrame == null) { jFrame = new JFrame()。 (new Dimension(389, 274))。 (登陸 )。 (false)。 (getJCon
點擊復制文檔內容
畢業(yè)設計相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1