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

正文內(nèi)容

java聊天室系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-文庫吧

2025-07-13 10:14 本頁面


【正文】 不同話題的討論,不僅將會(huì)員發(fā)展由國內(nèi)延伸到國際,更是為提高自身的知名度提供了方便 [2]。聊天室的開放性、信息資源的多樣性可為網(wǎng)站發(fā)展提供優(yōu)良的廣告宣傳和商品推廣,這是其他網(wǎng)站活動(dòng)方式所無法比擬的,聊天室趨向方便化、快捷化是各大網(wǎng)站成長(zhǎng)的必然經(jīng)歷的階段 [8]。 應(yīng)解決的問題及系統(tǒng)開發(fā)意義本系統(tǒng)針對(duì)聊天室用戶的需要,建立了客戶端和服務(wù)器端。主要解決的問題包括:1.服務(wù)器端和客戶端要實(shí)現(xiàn)界面化,并且界面盡量人性化。2.服務(wù)器端能夠正確的啟動(dòng),并且時(shí)刻監(jiān)視客戶端,保持與客戶端的連接。3.客戶端能夠快速準(zhǔn)確的連接上服務(wù)器端,發(fā)送的信息經(jīng)服務(wù)器端可以轉(zhuǎn)發(fā)給其他客戶。4.異常處理,對(duì)于用戶的不正確的操作系統(tǒng)應(yīng)該有提示?;?C/S 的 Java 聊天室系統(tǒng)它的開發(fā)意義在于為人們之間相互交流提供了一個(gè)快捷、方便的應(yīng)用平臺(tái)。大型網(wǎng)站可以通過聊天室來提高自身的知名度,增加的訪問流量。 第 2 章 開發(fā)工具及相關(guān)技術(shù)介紹 Java 與 Socket 簡(jiǎn)介Java 語言是 Sun 公司于 1991 年創(chuàng)建的一種新的程序設(shè)計(jì)語言。該語言與 C/C++等傳統(tǒng)程序設(shè)計(jì)語言不同,具有突出的平臺(tái)獨(dú)立性,高度的可靠性和安全性特點(diǎn)。1999 年 6 月 SUN 公司重新定義了 Java 技術(shù)的結(jié)構(gòu),將 Java2 平臺(tái)分為三個(gè)版本:標(biāo)準(zhǔn)版(J2SE) ,企業(yè)版(J2EE)和微縮版(J2ME ) 。目前,Java 技術(shù)除了沿著 J2SE,J2EE,J2ME 三種技術(shù)為主脈絡(luò)迅速發(fā)展外,還密切關(guān)注 Inter 環(huán)境下各種新型信息技術(shù)的發(fā)展,并能夠迅速與這些新技術(shù)融合,積極支持這些新技術(shù)應(yīng)用的開發(fā) [1]。Socket 是 Java 中需要編寫較低層次的網(wǎng)絡(luò)通信程序(例如 Client/Server 應(yīng)用程序)時(shí)提供的一種通訊機(jī)制。Socket 是兩個(gè)程序進(jìn)行雙向數(shù)據(jù)傳輸?shù)木W(wǎng)絡(luò)通信的端點(diǎn),一般由一個(gè)地址加上一個(gè)端口號(hào)來標(biāo)識(shí)。每個(gè)服務(wù)程序都在一個(gè)眾所周知的端口上提供服務(wù),而想使用服務(wù)的客戶端程序則需要連接該端口。通過 Socket 的數(shù)據(jù)是原始字節(jié)流信息,通信雙方必須根據(jù)約定的協(xié)議對(duì)數(shù)據(jù)進(jìn)行處理與解釋 [15]。Socket 通信機(jī)制提供了兩種通信方式:有連接方式(TCP)和無連接方式(UDP 數(shù)據(jù)報(bào)) 。有連接方式中,通信雙方在開始時(shí)必須進(jìn)行一次連接過程,建立一條通信鏈路。通信鏈路提供了可靠的,全雙工的字節(jié)流服務(wù)。無連接方式中,通信雙方不存在一個(gè)連接過程,一次網(wǎng)絡(luò) I/O 以一個(gè)數(shù)據(jù)報(bào)形式進(jìn)行,而且每次網(wǎng)絡(luò) I/O 可以和不同主機(jī)的不同進(jìn)程進(jìn)行。無連接方式開銷小于有連接方式,但是所提供的數(shù)據(jù)傳輸服務(wù)不可靠,不能保證數(shù)據(jù)報(bào)一定到達(dá)目的地 [14]。Java 的有連接通信采用流式 I/O 模式。Socket 是兩個(gè)進(jìn)程間通信鏈的端點(diǎn),每個(gè) Socket 有兩個(gè)流:一個(gè)輸入流和一個(gè)輸出流。只要向 Socket 的輸出流寫,一個(gè)進(jìn)程就可以通過網(wǎng)絡(luò)連接向其他進(jìn)程發(fā)送數(shù)據(jù);同樣,通過讀 Socket 的輸入流,就可以讀取傳輸來的數(shù)據(jù) [9]。有連接通信一般要經(jīng)歷以下四個(gè)基本步驟:創(chuàng)建 Socket,建立連接;打開連接到 Socket 的輸入/輸出流;按照一定的協(xié)議對(duì) Socket 進(jìn)行讀/ 寫操作;關(guān)閉 Socket。第(3)步是程序員用來調(diào)用 Socket 和實(shí)現(xiàn)程序功能的關(guān)鍵步驟,其他三步在各種程序中基本相同 [5]。 JBuilder5 介紹JBuilder5 是美國 Borland 公司最新推出的遵循 SUN 公司 J2EE 標(biāo)準(zhǔn)的集成開發(fā)工具,是目前使用最廣泛的 Java 開發(fā)工具之一。JBuilder 作為業(yè)界領(lǐng)先的 Java 開發(fā)工具,在集成了 Tomcat 并支持WebLogic 的同時(shí),其套裝版更是集成了 DreamweaverUltraDev,Rational Rose 等產(chǎn)品,JBuilder5 提供了可視化的集成開發(fā)工具,支持開發(fā)人員向?qū)O大地簡(jiǎn)化了開發(fā)人員的工作,使開發(fā)更為快捷,方便 [12]。JBuilder5 是一組全面的高效率工具,使用 Java 編程語言創(chuàng)建可伸縮的,高性能的和具有不依賴于平臺(tái)性能的應(yīng)用程序。由于可伸縮性和基于組件,JBuilder 可以開發(fā)所有級(jí)別的應(yīng)用工程,從Apple 到連接企業(yè)級(jí)的,分布式的,多層解決方案的網(wǎng)絡(luò)數(shù)據(jù)庫應(yīng)用。JBuilder5 環(huán)境是用純 Java 編寫。任何 Java 編寫的程序都可以在 JBuilder 上運(yùn)行、調(diào)試和工作 [3]。 C/S 模型介紹C/S 是 Client/Server 的縮寫,即客戶機(jī)/ 服務(wù)器技術(shù),也可以稱為 C/S 模型。很顯然,C/S 技術(shù)有以下幾個(gè)基本特點(diǎn):1.C/S 技術(shù)一定包含兩個(gè)部分,一個(gè)作為用戶接口的前端,另一個(gè)作為共享資源接口的后端。前端被稱為客戶端,后端被稱為服務(wù)器端??蛻暨M(jìn)程包含邏輯和提供用戶接口,服務(wù)進(jìn)程充當(dāng)一個(gè)管理共享資源的軟件引擎,這些共享資源可以是數(shù)據(jù)庫,打印機(jī),調(diào)制解調(diào)器和處理機(jī)等。2.前端與后端的任務(wù)對(duì)計(jì)算機(jī)資源有完全不同的要求,這些計(jì)算機(jī)資源包括:處理機(jī)速度,內(nèi)存,磁盤速度,容量,輸入輸出設(shè)備等。3.客戶機(jī)與服務(wù)器由于可能基于完全不同的硬件和操作系統(tǒng),所以它們之間的交流可能完全通過一套標(biāo)準(zhǔn)的已定義的 API 與 RPC。4.可伸縮性是 C/S 系統(tǒng)的一個(gè)很重要特性。無論是水平伸縮還是垂直伸縮都有很出色的表現(xiàn)。在這里,水平伸縮(Horizontal scaling)意味著方便地添加和刪除客戶工作站。垂直伸縮(Vertical scaling)意味著移植到一個(gè)更大更快速的服務(wù)器或多服務(wù)器時(shí),即服務(wù)的升級(jí)和集群都會(huì)比較方便[4]。C/S 軟件技術(shù)是一種通用的,基于消息的技術(shù)。在本論文中,我們這樣描述 C/S,網(wǎng)絡(luò)上的一臺(tái)計(jì)算機(jī)向網(wǎng)絡(luò)上的另外一臺(tái)計(jì)算機(jī)請(qǐng)求一個(gè)進(jìn)程或數(shù)據(jù),如圖 1 所示。服務(wù)器 客戶端請(qǐng)求網(wǎng)絡(luò)圖 1 C/S 技術(shù)模型Client/Server 結(jié)構(gòu)的優(yōu)點(diǎn)是速度快, 缺點(diǎn)是當(dāng) Server 進(jìn)行更新時(shí), Client 也必需更新 [6]。 用 Java 實(shí)現(xiàn) Socket 模型首先,我們先介紹一下 Socket 的運(yùn)行過程。通常在服務(wù)器的指定端口被綁定一個(gè) Socket,此時(shí)服務(wù)器只是處于等待狀態(tài),監(jiān)聽客戶的連接請(qǐng)求。這個(gè)過程如圖 2 所示。服務(wù)器客戶端監(jiān)聽端口連接請(qǐng)求圖 2 服務(wù)器監(jiān)聽客戶的連接請(qǐng)求服務(wù)器一旦接收到客戶機(jī)的連接請(qǐng)求,服務(wù)器選擇一個(gè)新的端口并綁定一個(gè)新的 Socket 與客戶端建立的 Socket 對(duì),這個(gè)過程如圖 3 所示。對(duì)客戶機(jī)來說,連接請(qǐng)求被接受,客戶端的 Socket 便被成功創(chuàng)建了,Socket 通信便可以開始進(jìn)行。由于 Server 端的輸出流是服務(wù)端的輸入流, Server 端的輸入流是服務(wù)器的輸出流,反之亦然,所以,Client 與 Server 可以通過讀寫各自 Socket 進(jìn)行交流。下面我們來看看在 Java 里對(duì) Socket 的運(yùn)行過程實(shí)現(xiàn)。服務(wù)器使用 ServerSocket 類來處理客戶機(jī)的連接請(qǐng)求。當(dāng)客戶機(jī)連接到服務(wù)器所監(jiān)聽的端口時(shí),ServerSocket 將分響應(yīng)監(jiān)聽端口服務(wù)器客戶端連接請(qǐng)求端口圖 3 服務(wù)器處理連接請(qǐng)求配一個(gè)新的 Socket 對(duì)象。這個(gè)新的 Socket 對(duì)象將連接到一些新端口,負(fù)責(zé)處理與之相對(duì)應(yīng)客戶機(jī)的通信。然后,服務(wù)器繼續(xù)監(jiān)聽 ServerSocket,處理新的客戶機(jī)連接。 [13]客戶機(jī)首先創(chuàng)建一個(gè) Socket 對(duì)象,用于和服務(wù)器的通信。之后需創(chuàng)建兩個(gè)對(duì)象:DataInputStream 和 PrintStream,前者用于從 Socket 的 InputStream 輸入流中讀取數(shù)據(jù),后者則用于向 Socket 的 OutputStream 的寫數(shù)據(jù) [11]。 Java 中的線程模型簡(jiǎn)介線程是程序中的一個(gè)執(zhí)行流。一個(gè)執(zhí)行流是由 CPU 運(yùn)行程序代碼并操縱程序的數(shù)據(jù)所形成的。因此,線程被認(rèn)為是以 CPU 為主體的行為。在 Java 中線程的模型就是一個(gè) CPU、程序代碼和數(shù)據(jù)的封裝體。Java 中的線程模型包含三部分。(1)一個(gè)虛擬的 CPU。(2)該 CPU 執(zhí)行的代碼。(3)代碼所操作的數(shù)據(jù)。線程模型在 Java 中是由 類進(jìn)行定義和描述的。程序中的線程都是 Thread 的實(shí)例。因此用戶可以通過創(chuàng)建 Thread 的實(shí)例或定義并創(chuàng)建 Thread 子類的實(shí)例建立和控制自己的線程序 [7]。 SQL SERVER 2022 簡(jiǎn)介Sql Server 2022 是微軟公司推出的新一代關(guān)系數(shù)據(jù)庫管理系統(tǒng),它繼承了 Sql Server 版本的優(yōu)點(diǎn),同時(shí)又增加了許多新的功能,具有功能強(qiáng)大、使用方便、可伸縮性強(qiáng)、與相關(guān)軟件高度集成等特點(diǎn)。一經(jīng)推出,就受到了專業(yè)人士的好評(píng),目前已經(jīng)成為 web 數(shù)據(jù)庫系統(tǒng)中較為常用的一個(gè)數(shù)據(jù)庫系統(tǒng)。Sql Server 2022 可運(yùn)行在 windows 98/NT/2022/XP 等多種操作系統(tǒng)下 [10]。Sql Server 2022 的重要管理工具:1.服務(wù)管理器可以通過服務(wù)管理器啟動(dòng)、停止、暫停 Sql Server 服務(wù)器的相關(guān)服務(wù)。當(dāng)操作服務(wù)器中的數(shù)據(jù)時(shí),應(yīng)該首先確保該服務(wù)器正常啟動(dòng)了相應(yīng)的服務(wù) [13]。2.企業(yè)管理器企業(yè)管理器提供了一種圖形化界面來操作數(shù)據(jù)庫對(duì)象,在該界面中可以進(jìn)行數(shù)據(jù)庫、表等數(shù)據(jù)對(duì)象的創(chuàng)建、查詢、修改、刪除等操作,可以完成 Sql Server 2022 中絕大多數(shù)的管理工作。3.查詢分析器查詢分析器是運(yùn)行、測(cè)試用戶的 Transactsql 語句、批處理和腳本的場(chǎng)所。 Transactsql(又稱為tsql)是 Sql Server 2022 在標(biāo)準(zhǔn)的 SQL 語句上進(jìn)行了擴(kuò)充的語言,是交互式的結(jié)構(gòu)化查詢語言,能夠完成對(duì) Sql Server 2022 數(shù)據(jù)庫的所有操作。 SQL(structured query language,結(jié)構(gòu)化查詢語言)起源于IBM 的實(shí)驗(yàn)室,目前 SQL 語言已經(jīng)成為操作和檢索關(guān)系數(shù)據(jù)庫中數(shù)據(jù)的標(biāo)準(zhǔn)語言。在 ASP 中,只要訪問數(shù)據(jù)庫,就必然會(huì)使用 SQL 語言。 第 3 章 系統(tǒng)需求分析 系統(tǒng)任務(wù)描述本系統(tǒng)是采用 Java 基于 C/S 開發(fā)的聊天室。管理員在經(jīng)過登錄界面進(jìn)入管理員界面,即系統(tǒng)的服務(wù)器端并啟動(dòng)服務(wù)器后。此時(shí),如果有用戶登錄會(huì)在服務(wù)器端顯示登錄用戶的用戶名和當(dāng)前連接的用戶人數(shù),如果有用戶聊天,服務(wù)器會(huì)顯示出聊天信息。管理員在管理界面中可以隨時(shí)關(guān)閉服務(wù)器。此時(shí),所有的客戶端都將失去和服務(wù)器端的連接,從而,用戶所有的聊天信息發(fā)送將不成功。用戶只需要在登錄界面中輸入正確的用戶名和密碼即可登錄聊天室并且連接上服務(wù)器。在聊天室中,用戶可以和聊天室中所有的用戶發(fā)送信息,還可以接收所有用戶發(fā)送的信息,可以查看到當(dāng)前服務(wù)器的狀態(tài)。如果用戶已經(jīng)登錄了聊天室,而服務(wù)器還沒有啟動(dòng),則用戶是不可以利用聊天室收發(fā)信息的。如果在運(yùn)行過程中,服務(wù)器斷開則系統(tǒng)會(huì)有提示。 系統(tǒng)功能分析 系統(tǒng)的功能需求聊天室程序通常需要完成以下一些基本功能:登錄聊天室;啟動(dòng)服務(wù)器;關(guān)閉服務(wù)器;用戶之間的聊天;退出聊天室。本系統(tǒng)具體功能需求如下:(1)聊天室管理員經(jīng)登錄界面登錄到管理界面,即系統(tǒng)的服務(wù)器端。用戶經(jīng)登錄界面都進(jìn)入聊天大廳。兩類界面根據(jù)系統(tǒng)使用者的角色不同,登錄界面也有所不同。(2)不論是管理員還是用戶都需要在登錄界面輸入正確的用戶名和密碼后才可以登錄到各自的界面中去。(3)系統(tǒng)的兩個(gè)主要界面都是為方便管理員和用戶操作的。首先,管理員進(jìn)入到管理界面后可以方便的啟動(dòng)/停止服務(wù)器,看到在線用戶的信息和聊天信息。用戶進(jìn)入到聊天大廳中可以聊天,查看服務(wù)器狀態(tài)。(4)一個(gè)用戶退出聊天室對(duì)其他用戶不能產(chǎn)生影響,而服務(wù)器斷開與客戶端的連接則所有的用戶都失去與服務(wù)器的連接。(5)用戶的聊天信息錄入,重寫,發(fā)送,接收方便,快捷。(6)服務(wù)器狀態(tài),聊天信息和在線用戶人數(shù)及時(shí)刷新。(7)顯著提高工作效率,減少人力、物力資源的投入。聊天室系統(tǒng)運(yùn)行穩(wěn)定、安全性高、性能可靠。 系統(tǒng)數(shù)據(jù)流圖.系統(tǒng)的頂級(jí)數(shù)據(jù)流圖如圖 4 所示。聊天室系統(tǒng)管理員 管理員用戶 用戶啟/停服務(wù)器發(fā)送信息
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1