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

正文內(nèi)容

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

2025-05-16 06:05 本頁面


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