JAVA聊天室程序-需求分析報告_第1頁
JAVA聊天室程序-需求分析報告_第2頁
JAVA聊天室程序-需求分析報告_第3頁
JAVA聊天室程序-需求分析報告_第4頁
JAVA聊天室程序-需求分析報告_第5頁
已閱讀5頁,還剩9頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、網絡聊天室程序-需求分析報告班 級 :通信工程01班小組成員:25黃 浩(組長)、10何昶衛 、 05徐志慶、26盧 翱 、 24羅澤思、目錄1、引言- 11.1編寫目的- 11.2項目背景- 11.3預備知識- 11.4參考資料- 22、項目簡介-22.1項目要求- 2 2.2整體思路- 3 2.3功能需求分析- 33、系統分析與設計-43.1設計思路-4 3.2開發環境及工具- 43.3服務器結構- 43.4客戶端結構- 5 3.5功能實現細節- 53.5.1客戶端運行細節- 6 3.5.2服務器端運行細節- 74、用戶注冊、登錄流程以及系統界面-84.1用戶注冊過程-84.2用戶登錄過程

2、-84.3服務器界面- 94.4登錄界面- 94.5聊天室界面-101、引言在網絡越來越發達的今天,人們對網絡的依賴越來越多,越來越離不開網絡,由此而產生的聊天工具越來越多,例如,國外的ICQ、國內騰訊公司開發的OICQ。基于Java網絡編程的強大功能,本次實訓中使用Java編寫一個聊天系統。 一般來說,聊天工具大多數由客戶端程序和服務器程序外加服務器端用于存放客戶數據的數據庫組成,本系統采用客戶機/服務器架構模式通過Java提供的Socket類來連接客戶機和服務器并使客戶機和服務器之間相互通信,由于聊天是多點對多點的而Java提供的多線程功能用多線程可完成多點對多點的聊天,數據庫管理系統用S

3、QL Server2008完成并通過JDBC-ODBC橋訪問數據庫。 本系統建立在JAVA平臺上,系統的設計使用了面向對象技術和面向對象的設計原則。系統采用C/S結構,客戶端與客戶端以及客戶端與服務器端之間通過Socket傳送消息。使用JAVA語言編寫,開發工具采用Eclipse。服務器端設計與實現過程中,采用了多線程技術,可以在單個程序當中同時運行多個不同的線程,執行不同的任務。大大增強了程序對服務器資源的利用。 聊天系統完成后將可進行多人對多人的聊天,對好友進行添加、刪除,對新用戶的注冊,發送消息、接受消息等等功能。1.1編寫目的編寫軟件需求說明是為了使用戶和軟件開發人員雙方對該軟件的初始

4、規定有一個共同的理解,并以此作為開發者進行軟件設計,用戶進行驗收的依據。該文件包含對軟件的功能、性能和運行環境的要求。1.2項目背景實訓:綜合課程設計(計算機軟件)開發軟件名稱:網絡聊天室1.3預備知識1.數據庫訪問權限的設計2.數據表的設計及E-R模型3.數據記錄的添加、刪除、查詢、修改4.多線程的實現5.網絡編程6.可視化界面設計7.數據庫編程8.正則表達式的應用9.UML建模1.4參考資料1數據庫應用技術項目教程(哈爾濱工程大學出版社,主編羅耀軍、唐軍芳、管勝波)2java程序設計教程(清華大學出版社,劉平主編)2、項目簡介2.1項目要求后臺數據庫使用SQL Server 2008,并且

5、保存在服務器端。至少有三個表:用戶注冊表、權限管理表,用戶基本信息。用戶注冊表和權限管理表是一對一的關系,即一個用戶只有一個權限;用戶基本信息表的用戶注冊表也是一對一關系。管理數據庫的人員權限分為兩種,一種是管理員,一種是普通用戶。管理員可以增加、查看、刪除某一個成員的信息,沒有修改權限,普通用戶只能查看、修改、刪除本人的信息。每個用戶在登錄之間必須先進行注冊,注冊是通過客戶端的注冊界面進行,注冊的流程參照普通網站的注冊流程進行(不需要太復雜),注冊成功的用戶只是普通用戶。在注冊過程中,用戶名只能使用中文或英文,不能使用其它的字符。用戶通過注冊名和密碼進行登錄,登錄以后,可以開始聊天,聊天的界

6、面由用戶自行設計。每一個用戶都可以看到其他所有用戶發表的聊天信息。管理員用戶可以屏蔽一些敏感的詞,比如“黃色”等。2.2整體思路 該聊天系統,就是服務器來提供服務端連接響應,客戶端主動的發起連接請求。當多個用戶同時連接到服務器時,經由服務器的接收與轉發便可以實現客戶之間的通信。 對于整體系統的流程,也是分為兩部分,即客戶端的發起請求,服務器響應請求。首先是客戶端設置所想要連接的服務器,然后客戶端就會根據設置的服務器IP地址,向服務器發起建立連接請求。而服務器端是始終在監聽網絡狀態的,主要檢測到有一個連接請求,那么服務器就會給當前的發起端分配一個服務線程,用于處理它的各種請求

7、。2.3功能需求分析實現網絡聊天的功能,采用Java Socket編程,服務器與客戶端采用了TCP/IP連接方式,在設計聊天方案時,可將所有信息發往服務器端,再由服務器進行處理,服務器端是所有信息的中心。聊天系統不外乎兩個方面,服務器端和客戶端。簡單分析一下兩個方面所要完成的任務。 服務器端的任務包括: 1、服務器端應當建立一個ServerSocket,并且不斷進行偵聽是否有客戶端連接或者斷開連接。 2、服務器端應當是一個信息發送中心,所有客戶端的信息都傳到服務器端,由服務器端根據要求分發信息。   以上就是服務器端最主要的

8、兩個任務。不難看出,服務器端的任務并不復雜。 客戶端應該完成的任務包括: 1、與服務器端建立通信通道,向服務器端發送信息。 2、接收來自服務器的信息。 相對服務器而言,客戶端的任務更加簡單,有了以上的簡單分析,可以知道,解決上述四個問題,即完成了該聊天系統的核心。3、聊天室系統設計與分析3.1設計思路在Internet上的聊天程序一般都是以服務器提供服務端連接響應,使用者通過客戶端程序登錄到服務器,就可以與登錄在同一服務器上的用戶交談,這是一個面向連接的通信過程。因此,程序要在TCP/IP環境下,實現服務器端和客戶端兩部分程序。 1.首先通過繼承JFra

9、me類構造服務器界面。 2設計客戶端程序使其能夠完成正常的通信功能,并且可以更改背景顏色,設置字體顏色。 3設計偵聽程序,使其顯示登錄的ip地址端口號,以及用戶昵稱,通過偵聽按鈕可以調用客戶端程序,實現聊天功能。3.2開發環境及工具服務器端:(Windows平臺)首先應有java環境jdk,建議采用jdk1.7.1;Eclipse。 客戶端: java環境jdk,建議jdk1.7.1;Eclipse。 本系統運行所需用到的環境為: 硬件配置 : 中央處理器(CPU) :P4 2.0G以上的處理器; 硬 盤:40GB以上硬盤; 內 存:256以上的DDR內存; 顯 卡:128M以上顯存顯卡 軟件

10、配置:WINDOWS 7 版本、Eclipse、jdk-1.7.1、SQL server 2008等。3.3服務器結構1、AppServer.java為服務器端監聽類,負責服務器的啟動,包括啟動監聽端口、服務器監控界面。2、ServerFrame.java 為服務器監控窗體,負責監控服務器運行狀態。3、Connection.java 為服務器連接處理的具體實現。3.4客戶端結構1、ChatClient.java 為客戶端程序啟動類,負責客戶端的啟動和退出。2、Login.java 為客戶端程序登錄界面,負責用戶帳號信息的驗證與反饋。3、Register.java 為客戶端程序注冊界面,負責用戶

11、帳號信息的注冊驗證與反饋。4、ChatRoom.java 為客戶端程序聊天室主界面,負責接收、發送聊天內容與服務器的Connection合作。5、Windowclose 為ChatRoom.java的內部類,負責監聽聊天室界面的操作,當用戶退出時返回給服務器信息。3.5功能實現細節概述:聊天室主要功能的實現:從界面輸入登錄信息,然后與服務器建立Socket連接(連接時應指定服務器的IP地址和端口號,而客戶端socket的端口由本方操作系統從空閑端口中確定),服務器端的“傾聽Socket”收到連接請求后,一般會接受連接請求,并生成一個服務端socket,專門負責與此客戶端socket的通信。一旦

12、連接請求成功,客戶端將信息及請求通過本方socket的輸出流發送給服務器端相應的socket,服務端則通過服務器端Socket的輸入流接受客戶端傳輸過來的信息及請求,分析是何請求,然后根據請求類型,進行相應的處理(如登錄、轉發信息等)。服務方也可以根據需要,通過socket的輸出流發信息和請求給客戶端(公告)。客戶方和服務方都可以通過關閉本方的socket而結束一次通訊過程。為了實現多客戶在線的請求,使用多線程機制來處理,對每一個客戶端連接通訊,服務器端都有一個線程專門負責處理。3.5.1客戶端運行細節1、注冊:當選擇注冊時,Register界面等待用戶輸入注冊信息,并將信息封裝成Regist

13、er_Customer類,然后通過建立在Socket的連接之上的對象輸出流將用戶注冊信息發送給服務器端,服務器端將請求轉發給Connection處理,Connection 在收到信息后將驗證數據的完整性并在數據庫中查找該用戶名是否已經注冊,然后將注冊信息加入數據庫,最后將注冊結果返回給客戶端。客戶端顯示注冊結果。2、登錄:當選擇登錄時,客戶端由Login 界面等待用戶輸入登錄信息后,封裝成Customer對象類然后通過建立在Socket的連接之上的對象輸出流將用戶登錄信息發送給服務器端,服務器端將請求轉發給Connection處理,Connection 在收到信息后將驗證數據的完整性并在對象型

14、數據庫中查找該用戶名是否已經注冊,然后將注冊用戶的信息與登錄請求信息進行密碼驗證,在登錄成功后將該用戶添加到在線用戶列表,最后將登錄結果返回給客戶端。若登錄成功,客戶端將啟動聊天室主界面。3、 聊天:a、發送聊天信息:私聊功能需在在線列表中選中私聊聊天對象,并勾選私聊選項。群聊功能取消對私聊功能的勾選即可。當用戶點擊完發送按鈕后,程序開始將當前用戶名、聊天對象、聊天內容、表情和是否私聊進行封裝,然后獲取Socket連接,再用對象輸出流包裝Socket的輸出流將聊天信息對象發送給服務器端。b、接收聊天信息:用一個單獨的接收線程實現,客戶端必須隨時接收服務器發來的消息,而讀取消息的方法采用的是阻塞

15、式方法,若在事件處理程序中讀(占用的是事件處理線程)則會使程序在此后無法響應用戶操作,所以需要生成一個單獨的線程專門用于讀取處理消息。而發送消息的方法則是將消息放入操作系統的發送緩沖區后就返回的,所以發送執行的相當快,可以在事件處理線程中直接調用。發送和接收可以同時進行。3.5.2服務器端運行細節1、注冊:創建一個File文件類,載入“user.txt”,再用對象輸入流ObjectInputStream包裝File文件類,將存儲在“user.txt”得向量對象Vector中載入內存中,現在系統中的向量就是對象型數據庫,存儲著每條用戶信息對象。判斷是否是第一個注冊用戶,判斷用戶名是否已經存在,判斷用戶名是否為系統關鍵字,用戶名有效后 寫入數據庫,并給客戶端返回信息,關閉Socket連接。2、登錄:去數據庫讀用戶數據,打開用戶數據庫文件“user.txt”,將用戶數據對象集載入內存,以供下面的程序使用。驗證用戶名是否存在,驗證用戶密碼是否正確,驗證用戶是否已經登錄,驗證是否已經超過最大登錄人數,如果以上驗證全部正確,返回客戶端信息,關閉Socket連接。3、退出:接收退出信息,當用戶退出時,客戶端將會用基于Socket的對象輸出流發給服務器退出對象,把用戶從在線列表中刪除,更新在線列表。4、聊天:接收用戶聊天信息,當

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論