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

正文內(nèi)容

基于java實現(xiàn)聊天室范文畢業(yè)論文(編輯修改稿)

2025-06-25 22:34 本頁面
 

【文章內(nèi)容簡介】 系統(tǒng)數(shù)據(jù)分析在仔細(xì)調(diào)查聊天室過程的基礎(chǔ)上,總結(jié)出該系統(tǒng)需要滿足以下系統(tǒng)數(shù)據(jù)的需求:系統(tǒng)管理員資料。包括管理員用戶名和管理員密碼。用戶信息記錄用戶的資料。包括用戶的用戶名、登錄密碼、真實姓名、電話、傳真、所屬地區(qū)。聊天室系統(tǒng)總體 ER 圖如圖 7 所示:客戶 管理員客戶管理聊天 管理圖 7 聊天室系統(tǒng)總體 ER 圖登錄界面 用戶名,密碼核對聊天室界面發(fā)送聊天信息接收聊天信息查看連接狀態(tài)口令錯誤口令核對口令正確聊天室系統(tǒng)管理員屬性圖如圖 8 所示:管理員 管理員密碼管理員用戶名圖 8: 管理員屬性圖聊天室系統(tǒng)客戶個人資料屬性圖如圖 9 所示:客戶用戶名傳真 真實姓名電話密碼地區(qū)圖 9: 客戶個人資料屬性圖 系統(tǒng)可行性分析從技術(shù)發(fā)面來看,Java 語言的優(yōu)點主要表現(xiàn)在:簡單、面向?qū)ο蟆⒍嗑€程、安全性等方面。 Java 與 C++語言非常相近,但 Java 比 C++簡單,它拋棄了 C++中的一些不是絕對必要的功能,如頭文件、預(yù)處理文件、指針、結(jié)構(gòu)、運算符重載、多重繼承以及自動強迫同型。Java 實現(xiàn)了自動的垃圾收集,簡化了內(nèi)存管理的工作。這使程序設(shè)計更加簡便,同時減少了出錯的可能。 Java 提供了簡單的類機制和動態(tài)的構(gòu)架模型。對象中封裝了它的狀態(tài)變量和方法,很好地實現(xiàn)了模塊化和信息隱藏;而類則提供了一類對象的原型,通過繼承和重載機制,子類可以使用或重新定義父類或超類所提供的方法,從而既實現(xiàn)了代碼的復(fù)用,又提供了一種動態(tài)的解決方案。 Java 是一種完全面向?qū)ο蟮某绦蛟O(shè)計語言,它除了數(shù)組、布爾和字符三個基本數(shù)據(jù)類型外的其它類都是對象,它不再支持全局變量。在 Java 中,如果不創(chuàng)建新類就無法創(chuàng)建程序,Java 程序在運行時必須先創(chuàng)建一個類的實例,然后才能提交運行。 Java 同樣支持繼承特性,Java 的類可以從其它類中繼承行為,但 Java 只支持類的單重繼承,即每個類只能從一個類中繼承。 Java 支持界面,界面允許程序員定義方法但又不立即實現(xiàn),一個類可以實現(xiàn)多個界面,利用界面可以得到多重繼承的許多優(yōu)點而又沒有多重繼承的問題。 多線程使應(yīng)用程序可以同時進行不同的操作,處理不同的事件。在多線程機制中,不同的線程處理不同的任務(wù),他們之間互不干涉,不會由于一處等待影響其他部分,這樣容易實現(xiàn)網(wǎng)絡(luò)上的實時交互操作。 Java 程序可以有多個執(zhí)行線程,如可以讓一個線程進行復(fù)雜的計算,而讓另一個線程與用戶進行交互,這樣用戶可以在不中斷計算線程的前提下與系統(tǒng)進行交互。多線程保證了較高的執(zhí)行效率 [5]。用于網(wǎng)絡(luò)、分布環(huán)境下的 Java 必須要防止病毒的入侵,Java 不支持指針,一切對內(nèi)存的訪問都必須通過對象的實例變量來實現(xiàn),這樣就防止了程序員使用欺騙手段訪問對象的私有成員,同時也避免了指針操作中容易產(chǎn)生的錯誤。從開發(fā)環(huán)境來看 ,JBuilder5 是一組全面高效率工具,使用 Java 編程語言創(chuàng)建可伸縮的,高性能的和具有不依賴于平臺性能的應(yīng)用程序。JBuilder5 新增幾個新功能,并對已有的功能進行了改造,包括一個單步產(chǎn)品安裝過程,以及自動卸載功能。其他功能還有:對 JAVA 的支持,WEB 應(yīng)用開發(fā),Enterprise JavaBeans(EJB),JMS 和 EAR向?qū)?,團隊開發(fā),編譯器的增強功能,工程屬性,配置 JDK,部署,IDE 的增強功能,語言的支持 [1]。從自身能力來看,本人在大學(xué)三年級時對 Java 語言進行過一個學(xué)期的系統(tǒng)學(xué)習(xí),對 Java 有一定的了解和掌握。雖然對 Java 的網(wǎng)絡(luò)編程不是很熟悉,但是通過到圖書館查閱書籍和網(wǎng)上收集資料,現(xiàn)在對 Java 網(wǎng)絡(luò)編程有了一定的了解。第四章 系統(tǒng)設(shè)計系統(tǒng)設(shè)計是本系統(tǒng)開發(fā)的重要階段,它直接影響到目標(biāo)系統(tǒng)的質(zhì)量,是整個開發(fā)工作的核心。系統(tǒng)設(shè)計階段的主要任務(wù)是:在系統(tǒng)分析提出的邏輯模型的基礎(chǔ)上,科學(xué)合理地進行物理模型設(shè)計。系統(tǒng)設(shè)計分為:總體設(shè)計和詳細(xì)設(shè)計??傮w設(shè)計包括子系統(tǒng)的劃分和模塊設(shè)計,詳細(xì)設(shè)計包括各模塊的詳細(xì)描述、輸入輸出設(shè)計等。系統(tǒng)設(shè)計遵循的原則是:系統(tǒng)性、適應(yīng)性、穩(wěn)健性、經(jīng)濟性。 系統(tǒng)總體結(jié)構(gòu)設(shè)計本系統(tǒng)是用 Java 語言基于 C/S 開發(fā)設(shè)計的,其核心的 Socket 技術(shù)決定了該系統(tǒng)的安全性和穩(wěn)定性,從而保證了本系統(tǒng)有較強的使用性。其最重要的功能就是實現(xiàn)了聊天信息的快速性,改變了傳統(tǒng)的面對面聊天信息不確定因素多,安全性低的狀況。聊天室設(shè)計圖如圖 10 所示。服務(wù)器客戶代理 客戶端線程用戶名用戶Socket圖 10: 聊天室設(shè)計圖 服務(wù)器使用多線程,每個線程對應(yīng)一個客戶端,但線程通過客戶代理同客戶端交流,在客戶代理中有兩個重要信息:一個是用戶名,一個是用戶名對應(yīng)的 Socket??蛻粝蚍?wù)器請求連接后,客戶代理的 Socket 字段便被實例化,當(dāng)用戶登錄后,客戶代理的用戶名字段被實例化,一個完整的客戶代理生成了。對客戶端來說用戶名是可見的,客戶端提供對用戶名的操作。對服務(wù)器端來說,Socket 是可見的,服務(wù)器通過用戶名操作 Socket,進而回應(yīng)客戶端的請求?;?C/S 的 Java 聊天室系統(tǒng)的作用是提供給人們一個平臺進行相互交流,在交流的過程中可能出現(xiàn)的情況也是不同的。因此,可將系統(tǒng)分成兩大模塊:服務(wù)器端模塊和客戶端模塊。系統(tǒng)功能模塊圖如圖 11 所示:基于 JAVA 實現(xiàn)聊天室服務(wù)器端 客戶端管理員登錄服務(wù)器管理用戶登錄聊天室啟動,停止服務(wù)器當(dāng)前連接人數(shù)用戶聊天信息 連接服務(wù)器 接收信息 認(rèn)證用戶 連接狀態(tài) 顯示信息 發(fā)送信息圖 11:系統(tǒng)功能模塊圖1.服務(wù)器端模塊介紹:該模塊分為管理員登錄和服務(wù)器管理兩個子模塊。首先,管理員登錄是指管理員通過輸入用戶名和密碼進入到管理員界面,即系統(tǒng)的服務(wù)器端。而服務(wù)器管理是指管理員進入到服務(wù)器端界面后,對系統(tǒng)的服務(wù)器端所做的一些操作,如啟動、停止服務(wù)器,查看當(dāng)前用戶連接人數(shù),和用戶的聊天信息??蛻舳四K介紹:該模塊分為用戶登錄和聊天室兩個子模塊。首先,用戶登錄是指用戶通過輸入用戶名和密碼進入到聊天室中,并且聊天室自動連接上服務(wù)器。聊天室模塊是指系統(tǒng)聊天室所具有的基本功能,如發(fā)送、接收信息,查看當(dāng)前和服務(wù)器連接狀態(tài),顯示發(fā)送和接收的信息。 數(shù)據(jù)庫設(shè)計本次數(shù)據(jù)庫開發(fā)工具為 Microsoft SQL Server 2022,具體設(shè)計的表單如下:表 1:用戶信息表字段名 類型 大小 允許空 備注username nvarchar 20 否 用戶名password nvarchar 20 否 密碼Truename nvarchar 10 是 真實姓名country nvarchar 16 是 所屬地區(qū)fav nvarchar 20 是 傳真tel nvarchar 20 是 電話表 2:管理員信息表字段名 類型 大小 允許空 備注username nvarchar 20 否 用戶名password nvarchar 20 否 密碼 系統(tǒng)功能模塊詳細(xì)設(shè)計管理員登錄模塊流程圖如圖 12 所示: 開始輸入用戶名與密碼查詢數(shù)據(jù)庫是否有這條記錄?進入管理員界面提示用戶名或密碼錯誤結(jié)束圖 12:管理員登錄模塊流程圖下面對管理員登錄程序流程圖做簡要敘述。首先,管理員在登錄界面中輸入管理員用戶名和密碼,并向系統(tǒng)發(fā)送。系統(tǒng)在收到發(fā)送信息后查詢數(shù)據(jù)庫,如果在數(shù)據(jù)庫中存有相同的信息,則運行管理員界面。如果在數(shù)據(jù)庫中沒有相同信息,則系統(tǒng)提示錯誤,并返回登錄界面。服務(wù)器管理模塊流程圖如圖 13 所示:管理員身份驗證管理員界面關(guān)閉服務(wù)器啟動服務(wù)器 查看在線用戶人數(shù)開始結(jié)束提示用戶名或密碼錯誤正確 錯誤查看聊天信息圖 13:服務(wù)器管理模塊流程圖下面對服務(wù)器管理程序流程圖做簡要敘述。首先,管理員通過登錄界面進入到管理員界面中。在此界面中可以實現(xiàn)對系統(tǒng)服務(wù)器的啟動和關(guān)閉,查看在線用戶人數(shù)和用戶的聊天信息。用戶登錄模塊流程圖如圖 14 所示:下面對用戶登錄程序流程圖做簡要敘述。首先,用戶在登錄界面中輸入用戶名和密碼經(jīng)過系統(tǒng)驗證后進入到聊天室中,同時,如果服務(wù)器已經(jīng)啟動,系統(tǒng)自動將聊天室連接上服務(wù)器,用戶可以使用聊天室,并且在服務(wù)器端有用戶登錄的提示。如果服務(wù)器沒圖 15:聊天室模塊流程圖圖 14: 用戶登錄模塊流程圖開始輸入用戶名與密碼查詢數(shù)據(jù)庫是否有這條記錄?進入聊天室界面提示用戶名或密碼錯誤結(jié)束服務(wù)器端顯示用戶開始結(jié)束身份驗證聊天室查看連接狀態(tài)接收信息發(fā)送信息提示用戶名或密碼錯誤正確錯誤查看聊天信息有啟動,則用戶可以進入到聊天室,但是使用不了聊天室。聊天室模塊流程圖如圖 15所示??梢詫α奶焓页绦蛄鞒虉D做這樣的簡要敘述:用戶在登錄界面中輸入用戶名和密碼進入到聊天室中。在此界面中用戶可以實現(xiàn)向其他用戶發(fā)送信息,接收其他用戶發(fā)送的信息,查看當(dāng)前和服務(wù)器的連接狀態(tài)。第五章 編碼與實現(xiàn) 系統(tǒng)主要模塊代碼 啟動、停止服務(wù)器class Serverchat extends Thread{public Serverchat(){ try{intPort=(textPort)。 IAddress host=()。(()++())。 ss=new ServerSocket(intPort)。 ssLive=()。display(服務(wù)器已啟動!)。 }catch(Exception e){ display(服務(wù)器已關(guān)閉!)。}()。}public void run(){while(true){ try{clientSk=()。if(clientSk!=null){ display(clientSk+join in )。} } catch(IOException e){display(無法監(jiān)聽!)。}int i=0。do{ Connect c=new Connect(clientSk)。(c)。if(checkName(c)){activeConnects++。 }else{(TAKEN)。disconnect(c)。} i++。 break。}while(i())。 }} } 客戶端連接服務(wù)器class Clientchat extends Thread{public Clientchat(){try{loginName=()。intPort=(())。ipAdd=new String(())。sk=new Socket(ipAdd,intPort)。fromServer=newBufferedReader(new InputStreamReader(()))。toServer=new PrintStream(())。StringBuffer info=new StringBuffer(INFO:)。String userInfo=loginName+:。((userInfo))。()。address=()。skLive=()。display(connect successfully!++())。}catch(Exception e){display(connect failed!)。}()。} 聊天室發(fā)送信息(new (){ public void actionPerformed(ActionEvent e){ button2_actionPerformed(e)。 } })。 (new textField2_KeyAdapter(this))。 (label1)。 (textField2)。 (button2)。當(dāng)客戶在發(fā)送信息文本框中寫好信息后,可以有兩種發(fā)送方式,一種方法是點擊發(fā)送按鈕,另一種方法在鍵盤上敲擊“ENTER” 。 服務(wù)器轉(zhuǎn)發(fā)信息public void run(){ try{ while(true){ for(int i=0。i()。i++){ Thread1=(CommunicateThread)(i)。 msgStack=。 ClientName=(String)(i)。 for(int j=0。j()。j++){ string=(String)(j)。 broadcastInfor=ClientName++string。 broadcast(broadcastInfor)。 } ()。 }
點擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1