基于java socket的聊天室項目文檔_第1頁
基于java socket的聊天室項目文檔_第2頁
基于java socket的聊天室項目文檔_第3頁
基于java socket的聊天室項目文檔_第4頁
基于java socket的聊天室項目文檔_第5頁
已閱讀5頁,還剩31頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、北京郵電大學軟件學院 2010-2011 學年第 1學期實訓項目文檔(每個項目小組一份)課程名稱: 全日制研究生實訓 項目名稱: 通信軟件實訓 項目完成人:姓名: 學號: 姓名: 學號: 姓名: 學號: 姓名: 學號: 姓名: 學號: 姓名: 學號: 指導教師: 日 期:2011年1月21日l 基于java socket的聊天室實現(xiàn)一 . 實訓項目目的和要求(說明通過本項目希望達到的目的和要求) 目的:熟練掌握socket編程原理,并用java socket實現(xiàn)聊天室 要求:實現(xiàn)p2p和聊天室功能二 . 實訓項目開發(fā)環(huán)境(說明本項目需要的環(huán)境) 開發(fā)工具:eclipse sdk version

2、: 3.5.2 和 netbeans 6.9.1 版本 系統(tǒng):win7三 . 實訓項目內(nèi)容(說明本項目的內(nèi)容,如:問題分析、設計方案、算法、設計圖等)1.問題分析網(wǎng)絡編程中兩個主要的問題一個是如何準確的定位網(wǎng)絡上一臺或多臺主機,另一個就是找到主機后如何可靠高效的進行數(shù)據(jù)傳輸。在tcp/ip協(xié)議中ip層主要負責網(wǎng)絡主機的定位,數(shù)據(jù)傳輸?shù)穆酚?,由ip地址可以唯一地確定internet上的一臺主機。而tcp層則提供面向應用的可靠(tcp)的或非可靠(udp)的數(shù)據(jù)傳輸機制,這是網(wǎng)絡編程的主要對象,一般不需要關心ip層是如何處理數(shù)據(jù)的。目前較為流行的網(wǎng)絡編程模型是客戶機/服務器(c/s)結(jié)構(gòu)。即通信雙

3、方一方作為服務器等待客戶提出請求并予以響應??蛻魟t在需要服務時向服務器提 出申請。服務器一般作為守護進程始終運行,監(jiān)聽網(wǎng)絡端口,一旦有客戶請求,就會啟動一個服務進程來響應該客戶,同時自己繼續(xù)監(jiān)聽服務端口,使后來的客戶也 能及時得到服務。兩類傳輸協(xié)議:tcp;udp。tcp是tranfer control protocol的 簡稱,是一種面向連接的保證可靠傳輸?shù)膮f(xié)議。通過tcp協(xié)議傳輸,得到的是一個順序的無差錯的數(shù)據(jù)流。發(fā)送方和接收方的成對的兩個socket之間必須建 立連接,以便在tcp協(xié)議的基礎上進行通信,當一個socket(通常都是server socket)等待建立連接時,另一個sock

4、et可以要求進行連接,一旦這兩個socket連接起來,它們就可以進行雙向數(shù)據(jù)傳輸,雙方都可以進行發(fā)送 或接收操作。兩類傳輸協(xié)議:tcp;udp。tcp是tranfer control protocol的 簡稱,是一種面向連接的保證可靠傳輸?shù)膮f(xié)議。通過tcp協(xié)議傳輸,得到的是一個順序的無差錯的數(shù)據(jù)流。發(fā)送方和接收方的成對的兩個socket之間必須建 立連接,以便在tcp協(xié)議的基礎上進行通信,當一個socket(通常都是server socket)等待建立連接時,另一個socket可以要求進行連接,一旦這兩個socket連接起來,它們就可以進行雙向數(shù)據(jù)傳輸,雙方都可以進行發(fā)送 或接收操作。udp是

5、user datagram protocol的簡稱,是一種無連接的協(xié)議,每個數(shù)據(jù)報都是一個獨立的信息,包括完整的源地址或目的地址,它在網(wǎng)絡上以任何可能的路徑傳往目的地,因此能否到達目的地,到達目的地的時間以及內(nèi)容的正確性都是不能被保證的。比較:udp:1,每個數(shù)據(jù)報中都給出了完整的地址信息,因此無需要建立發(fā)送方和接收方的連接。 2,udp傳輸數(shù)據(jù)時是有大小限制的,每個被傳輸?shù)臄?shù)據(jù)報必須限定在64kb之內(nèi)。3,udp是一個不可靠的協(xié)議,發(fā)送方所發(fā)送的數(shù)據(jù)報并不一定以相同的次序到達接收方tcp:1,面向連接的協(xié)議,在socket之間進行數(shù)據(jù)傳輸之前必然要建立連接,所以在tcp中需要連接 時間。2,

6、tcp傳輸數(shù)據(jù)大小限制,一旦連接建立起來,雙方的socket就可以按統(tǒng)一的格式傳輸大的數(shù)據(jù)。3,tcp是一個可靠的協(xié)議,它確保接收方完全正確地獲取發(fā)送方所發(fā)送的全部數(shù)據(jù)。應用:1,tcp在網(wǎng)絡通信上有極強的生命力,例如遠程連接(telnet)和文件傳輸(ftp)都需要不定長度的數(shù)據(jù)被可靠地傳輸。但是可靠的傳輸是要付出代價的,對數(shù)據(jù)內(nèi)容正確性的檢驗必然占用計算機的處理時間和網(wǎng)絡的帶寬,因此tcp傳輸?shù)男什蝗鐄dp高。2,udp操作簡單,而且僅需要較少的監(jiān)護,因此通常用于局域網(wǎng)高可靠性的分散系統(tǒng)中client/server應用程序。例如視頻會議系統(tǒng),并不要求音頻視頻數(shù)據(jù)絕對的正確,只要保證連貫性

7、就可以了,這種情況下顯然使用udp會更合理一些。2.設計方案基于socket的java網(wǎng)絡編程。網(wǎng)絡上的兩個程序通過一個雙向的通訊連接實現(xiàn)數(shù)據(jù)的交換,這個雙向鏈路的一端稱為一個socket。socket通常用來實現(xiàn)客戶方和服務方的連接。socket是tcp/ip協(xié)議的一個十分流行的編程界面,一個socket由一個ip地址和一個端口號唯一確定。但是,socket所支持的協(xié)議種類也不光tcp/ip一種,因此兩者之間是沒有必然聯(lián)系的。在java環(huán)境下,socket編程主要是指基于tcp/ip協(xié)議的網(wǎng)絡編程。socket通訊的過程。server端listen(監(jiān)聽)某個端口是否有連接請求,client

8、端向server 端發(fā)出connect(連接)請求,server端向client端發(fā)回accept(接受)消息。一個連接就建立起來了。server端和client 端都可以通過send,recv等方法與對方通信。3.設計圖圖1:聊天室用例圖用例說明文本:1、 用戶登錄用例:客戶端運行,用戶可以用用戶名和端口號登陸到服務器。2、 服務器注冊用例:服務器根據(jù)用戶輸入的用戶名和端口號和sip地址記錄用戶信息并把信息廣播給所有的在線用戶。3、 客戶端發(fā)送消息用例:客戶端縣服務器帶有關鍵字(群聊/私聊/登錄/退出)的消息到服務器。4、 服務器轉(zhuǎn)發(fā)消息用例:服務器解析收到的消息,提取目的端sip地址,并把

9、消息轉(zhuǎn)發(fā)到目的端。5、 客戶端退出用例:客戶端向服務器發(fā)送log on消息。服務器把該客戶信息從用戶列表中刪除,并更新在線列表。圖2聊天室領域模型圖3登錄順序圖圖4聊天順序圖四 . 實訓項目結(jié)果及分析 項目分析:客戶端實現(xiàn):以服務方主機地址和端口號為參數(shù)調(diào)用 socket 類的構(gòu)造函數(shù)去創(chuàng)建一個 socket 對象. 創(chuàng)建過程包含了向服務方請求建立通訊連接。使用 socket 對象的 getinputstream() 和 getoutputstream() 方法創(chuàng)建用于網(wǎng)絡傳輸?shù)妮斎?輸出流。使用所得的網(wǎng)絡流對象讀寫數(shù)據(jù),網(wǎng)絡流對象將讀寫轉(zhuǎn)換成對 socket 數(shù)據(jù)的接收和發(fā)送。工作完畢, 關

10、閉網(wǎng)絡流對象服務器實現(xiàn):以某端口號為參數(shù)調(diào)用 serversocket 類的構(gòu)造函數(shù)去創(chuàng)建一個 serversocket 對象,作為服務器的socket。調(diào)用被創(chuàng)建的 serversocket 對象的 accept() 方法在指定端口監(jiān)聽客戶方的連接請求。收到客戶請求后,accept() 方法返回一個新建的 socket 對象, 該對象代表和客戶方建立起來的通訊連接在服務方的通訊端點。使用 socket 對象的 getinputstream() 和 getoutputstream() 方法創(chuàng)建用于網(wǎng)絡傳輸?shù)妮斎?輸出流。使用所得的網(wǎng)絡流對象讀寫數(shù)據(jù),網(wǎng)絡流對象將讀寫轉(zhuǎn)換成對 socket 的數(shù)

11、據(jù)的接收和發(fā)送。工作完畢, 關閉網(wǎng)絡流對象項目實現(xiàn):五 . 實訓項目人員、進度安排及完成過程小組一共六個人,在這一星期的實訓中,每個人都認真學習了java socket的內(nèi)容,并在此基礎上進一步完成聊天室功能實現(xiàn)。由于基礎不同,我小組分工及人員完成情況如下:小組組長:在這個項目里主要負責協(xié)調(diào)各個組員之間的協(xié)作,進行項目分工,畫用例模型,總結(jié)整理組員的工作。技術經(jīng)理:主要負責java socket的研究并回答小組其他成員的疑問,在聊天室的設計過程中,對一些功能實現(xiàn)提出了建設性的意見。技術人員:主要負責幾個聊天室程序的分析與設計,設計文檔的撰寫,聊天室程序編寫的大部分工作。測試人員:負責聊天室程序

12、的測試工作,需求文檔的撰寫,負責文檔的整理,資料的搜集以及小組ppt的制作。六 . 實訓項目心得及體會心得體會:理解了socket工作流程和實現(xiàn)方法,熟練掌握socket編程,實現(xiàn)了簡單的聊天室功能,對多線程有了更進一步的理解。通過老師對sip協(xié)議的講解,使我對sip協(xié)議有了一個初步的認識,使我明白了sip(session initiation protocol)是一個應用層的信令控制協(xié)議。用于創(chuàng)建、修改和釋放一個或多個參與者的會話。這些會話可以好似internet多媒體會議、ip電話或多媒體分發(fā)。會話的參與者可以通過組播(multicast)、網(wǎng)狀單播(unicast)或兩者的混合體進行通信

13、。在學習網(wǎng)絡傳輸?shù)倪^程中,對兩種網(wǎng)絡傳輸協(xié)議有了更進一步的理解和深刻的體會。七 . 附錄(附上實訓項目其他文檔,具體內(nèi)容根據(jù)項目要求確定)1. 需求分析文檔錯誤!未找到索引項。2. 設計文檔3. 項目ppt4. 源程序l linux操作系統(tǒng)下基于c語言的 socket聊天室實現(xiàn)一 . 實訓項目目的和要求(說明通過本項目希望達到的目的和要求)基于linux系統(tǒng)下的socket編程p2p聊天系統(tǒng)1.掌握linux環(huán)境下socket編程的基本過程;2.熟練掌握c語言編程方法;3.了解gcc編譯器的編譯過程,并能在linux系統(tǒng)下熟練使用。二 . 實訓項目開發(fā)環(huán)境(說明本項目需要的環(huán)境)系統(tǒng)環(huán)境:li

14、nux系統(tǒng)編譯環(huán)境:gcc編譯器三 . 實訓項目內(nèi)容(說明本項目的內(nèi)容,如:問題分析、設計方案、算法、設計圖等)問題分析:如何通過socket實現(xiàn)linux環(huán)境下的點對點通信。設計方案:1. 目的:在linux系統(tǒng)中實現(xiàn)點對點通信2. 要求:使用socket、c語言編程3. 步驟:(1)根據(jù)socket通信機制,編寫c源程序; (2)對源程序進行反復測試、修改; (3)實現(xiàn)點對點通信功能。 設計圖:四 . 實訓項目結(jié)果及分析 p2p網(wǎng)絡聊天系統(tǒng)的測試結(jié)果如下:結(jié)果分析:該測試是在一臺計算機上進行的,若要實現(xiàn)兩臺計算機間的點對點通信,只需修改相應的ip地址和端口號即可。如圖所示,該系統(tǒng)實現(xiàn)了p2

15、p通信,即通信雙方之間可以相互發(fā)送和接收消息,達到了預期目的,滿足了用戶需求。五 . 實訓項目人員、進度安排及完成過程小組一共六個人,在這一星期的實訓中,每個人都認真學習了linux操作系統(tǒng)環(huán)境下的c socket的內(nèi)容,及gcc的編譯環(huán)境,并在此基礎上進一步完成聊天室功能實現(xiàn)。具體的分工如下:負責udp通訊協(xié)議下聊天室的程序編寫。負責tcp通訊寫一下的聊天室的程序編寫。同學,主要負責編寫需求分析,繪制領域模型等工作。六 . 實訓項目心得及體會linux環(huán)境對于我們都是一個陌生的環(huán)境,通過這個項目的聯(lián)系,收獲的不僅是c socket的通信編程。更大的收獲是對linux環(huán)境的學習,了解了linu

16、x的文件構(gòu)成。七 . 附錄(附上實訓項目其他文檔,具體內(nèi)容根據(jù)項目要求確定部分核心代碼if(fork()=0)char msg256;while(strcmp(msg,) != 0)printf(enter input messagen);scanf(%s,msg);sendto(sockffdd, msg, sizeof(msg), 0, (struct sockaddr *)&server1,sizeof(struct sockaddr);printf(send successfuln);usleep(100000);close(sockffdd);/char buf4096;int re

17、size, the_len;the_len = sizeof(struct sockaddr);while(true)printf(ok);resize = recvfrom(sockfd, buf, sizeof(buf), 0,(struct sockaddr *)&their, &the_len);printf(receive message is:%s, buf);printf(tt%sn, inet_ntoa(their.sin_addr);l 基于jain-sip聊天室的開發(fā)一 . 實訓項目目的和要求(說明通過本項目希望達到的目的和要求)l 熟悉jain-sip協(xié)議規(guī)定的通信工程;

18、l 完成一個有gui界面的聊天室,最基本要實現(xiàn)公聊和私聊內(nèi)容;二 . 實訓項目開發(fā)環(huán)境(說明本項目需要的環(huán)境)開發(fā)工具:eclipse 3.2版本 和 netbeans 6.9.1 版本系統(tǒng)要求:裝有java 虛擬機的 windows xp 及高版本 、linux等其他系統(tǒng)接口/協(xié)議約束:必須使用jain-sip協(xié)議棧,支持ipv4接口用戶界面的約束:用戶界面要求操作系統(tǒng)能支持java 虛擬機,并有gui桌面。軟件質(zhì)量的約束:正確實現(xiàn)了網(wǎng)上聊天室的群聊、私聊、顯示在線列表,新建聊天室功能,選擇進入聊天室。服務器端通過jain-sip封裝的類使用多線程分別處理監(jiān)聽,發(fā)送功能。但本軟件的主要實現(xiàn)通

19、信的只有一個類,略有龐大,并且與多個界面有聯(lián)系,之間互相有操作、調(diào)用關系,故程序的耦合度比較大。三 . 實訓項目內(nèi)容(說明本項目的內(nèi)容,如:問題分析、設計方案、算法、設計圖等)3.1本系統(tǒng)介紹:本聊天室系統(tǒng)適用于大多數(shù)用戶,對用戶操作能力的要求低。同時,該系統(tǒng)的界面簡潔,系統(tǒng)資源占用少,運行速度快,對于小型局域網(wǎng)內(nèi)的用戶可以起到很好的交流作用。所謂聊天室就是一個可以讓許多用戶同時相互通信的網(wǎng)上園地,個人用戶可以通過網(wǎng)上聊天室將自未自己獲取更多的知識和更多的閱歷。本聊天室主要用登錄界面、聊天室界面、私聊界面、創(chuàng)建聊天室界面等構(gòu)成,這個設計簡潔明了,實用,使用簡單。系統(tǒng)的總體框架圖如圖2所示:聊天

20、室系統(tǒng)服務器客戶端監(jiān) 聽 請 求用 戶 退 出顯示登錄情況用 戶 登 錄轉(zhuǎn) 發(fā) 請 求私 聊創(chuàng)建聊天室群 聊本系統(tǒng)的主要功能:(1) 聊天室系統(tǒng)界面由登錄界面,聊天窗口,私聊窗口組成,聊天窗口分為聊天室名稱,在線人數(shù),消息發(fā)送區(qū),消息顯示區(qū)。 (2) 用戶首先在登錄界面輸入昵稱,點擊登錄按鈕登錄系統(tǒng)。客戶端隨即與服務端進行三次握手,收到“ok”回應后打開群聊窗口。(3) 用戶可以在群聊窗口的點擊用戶在聊天室中的在線用戶列表中可以雙擊某個用戶,隨后彈出私聊窗口,進行對被點擊用戶之間的私聊。(4) 用戶可以創(chuàng)建新的聊天室,其他用戶可以進入到新建的聊天室里。(5) 用戶在聊天窗口可以發(fā)送消息,服務器

21、收到消息后廣播給所有登錄用戶。并且在消息顯示區(qū)顯示消息發(fā)送方的昵稱。(6) 服務器端可以記載所有用戶的聊天的信息,包括私聊信息。并能通過打開一個在線用戶列表用戶。可以實時看到用戶列表。(7) 聊天室系統(tǒng)界面由登錄界面,聊天窗口,私聊窗口組成,聊天窗口分為聊天室名稱,在線人數(shù),在線用戶列表區(qū),聊天室創(chuàng)建/選擇,消息發(fā)送區(qū),消息顯示區(qū)。 (8) 用戶首先在登錄界面輸入昵稱,點擊登錄按鈕登錄系統(tǒng)??蛻舳穗S即與服務端進行三次握手,收到“ok”回應后打開聊天窗口。(9) 用戶可以在聊天窗口的點擊聊天室標簽,進行創(chuàng)建新的聊天室,或選擇一個已有的 聊天室。用戶創(chuàng)建新聊天可以點擊創(chuàng)建后輸入聊天室名稱,然后點確

22、定。(10) 用戶在聊天窗口可以發(fā)送消息,服務器收到消息后廣播給所有登錄用戶。并且在消息顯示區(qū)顯示消息發(fā)送方的昵稱,發(fā)送時間,消息內(nèi)容。用戶在聊天室中的在線用戶列表中可以雙擊某個用戶,隨后彈出私聊窗口,進行私聊。3.1子系統(tǒng)結(jié)構(gòu)圖(1)客戶端子系統(tǒng)(2)服務端子系統(tǒng)3.3分解系統(tǒng)的目的:聊天室的系統(tǒng)主要由客戶端和服務端組合而成,故可以分為兩個子系統(tǒng)。這兩個子系統(tǒng)可以獨立的處理客戶和服務器的各自的需求,如客戶可以填寫發(fā)送的消息,服務器可以查看用戶的消息和用戶的是否在線。3.4子系統(tǒng)之間的關系兩者之間采用jain-sip協(xié)議通過請求消息和響應消息建立通信機制。3.5模塊匯總3.5.1 登錄系統(tǒng)如表

23、1所示:用例名稱登錄系統(tǒng)范圍聊天室系統(tǒng)應用級別用戶目標主要參與者登錄用戶前置條件無成功保證成功登錄聊天室系統(tǒng)主成功場景1. 用戶進入登錄窗口界面2. 用戶輸入昵稱,并點擊登陸,向服務器端發(fā)送登陸請求3. 系統(tǒng)驗證用戶身份,返回客戶端一個響應4. 用戶成功登錄系統(tǒng),并進入相應的聊天室系統(tǒng)擴展2a. 登錄超時1. 系統(tǒng)給出登錄超時的提示1. 用戶重新輸入昵稱,并提交 表13.5.2 群聊如表2所示:用例名稱用戶群聊范圍聊天室系統(tǒng)應用級別用戶目標主要參與者成功登錄的用戶前置條件用戶登陸成功成功保證成功進行群聊主成功場景1. 用戶成功登錄后,選擇右側(cè)下方的消息輸入?yún)^(qū)2. 在輸入?yún)^(qū)輸入消息,并回車,消息

24、發(fā)送3. 客戶端將用戶發(fā)送的信息打包傳送給服務器4. 服務器對數(shù)據(jù)進行分析后,并將用戶的信息進行正確處理5. 傳給處在聊天室的所有在線其他用戶6. 將消息正常顯示在上方的消息顯示區(qū)擴展3a. 消息發(fā)送失敗1. 系統(tǒng)給出消息發(fā)送失敗的提示2. 用戶重新輸入消息,進行發(fā)送 表23.5.3私聊如表3所示:用例名稱用戶私聊范圍聊天室系統(tǒng)應用級別用戶目標主要參與者成功登錄的用戶前置條件用戶登錄成功,私聊的對方在線成功保證成功進行私聊主成功場景1. 用戶雙擊在線列表中的某個用戶2. 系統(tǒng)彈出私聊窗口3. 在窗口下方輸入消息,點擊發(fā)送按鈕4. 系統(tǒng)轉(zhuǎn)發(fā)消息,發(fā)送到指定的私聊用戶,消息顯示在私聊窗口的消息顯示

25、區(qū),進行雙方私聊5. 私聊結(jié)束,點擊關閉按鈕擴展3a. 消息發(fā)送失敗1. 系統(tǒng)給出消息發(fā)送失敗的提示2. 用戶重新輸入消息,進行發(fā)送特殊需求不能與不在線的用戶進行私聊 表33.5.4 創(chuàng)建聊天室如表4所示:用例名稱創(chuàng)建聊天室范圍聊天室系統(tǒng)應用級別用戶目標主要參與者成功登錄的用戶前置條件用戶登錄成功成功保證成功創(chuàng)建聊天室主成功場景1. 用戶成功登錄后,點擊創(chuàng)建聊天室2. 系統(tǒng)彈出新窗口3. 用戶輸入聊天室名稱點擊確認4. 創(chuàng)建新聊天室,進行聊天擴展3a. 用戶如果輸入已經(jīng)存在的聊天室名稱1. 系統(tǒng)給出創(chuàng)建失敗的提示2. 用戶重新輸入,進行確認 表43.5.5 退出系統(tǒng)如表5所示:用例名稱用戶退出

26、系統(tǒng)范圍聊天室系統(tǒng)應用級別用戶目標主要參與者成功登錄的用戶前置條件用戶成功登錄聊天室成功保證用戶在正常情況下退出了聊天室主成功場景1. 用戶向服務器發(fā)送用戶退出消息2. 服務器進行用戶退出的數(shù)據(jù)處理3. 服務器向聊天室其他用戶發(fā)送退出消息4. 刷新其他在線用戶的用戶列表信息,并顯示當前在線人數(shù) 表53.6模塊間關系領域模型如下圖所示:群聊順序圖私聊順序圖四 . 實訓項目結(jié)果及分析 登陸界面如下:聊天界面如下:創(chuàng)建群界面如下:五 . 實訓項目人員、進度安排及完成過程小組成員分工及安排組長,組織大家討論聊天室uml設計模型,編程設計思路,解決程序出現(xiàn)的問題。編程人員,主要負責通信模式設計編程人員,

27、主要負責分析jain-sip api。 調(diào)試程序,分析并解決問題。調(diào)試程序,分析并解決問題。編程人員,主要負責消息處理,界面設計六 . 實訓項目心得及體會通過本次的實訓項目的練習,讓我們充分熟悉了sip協(xié)議以及sip在java編程中的實現(xiàn)方法jain-sip作為api來調(diào)用。熟練了我們在java的gui方面的應用、強化了我們對于面向?qū)ο蟾拍畹睦斫?、接口的作用;讓我們對uml和ooad的認識又更近了一層,如何用它們知道需求分析、進一步細分軟件的功能實現(xiàn)到具體的人員分工。七 . 附錄(附上實訓項目其他文檔,具體內(nèi)容根據(jù)項目要求確定7.1穩(wěn)定性和可擴展性提示:在“軟件”生命周期內(nèi),判斷哪些需求是不變

28、的,預測哪些需求可能發(fā)生的變化。在總體設計的時候,既要使總體結(jié)構(gòu)穩(wěn)定,又要適應需求變化。當出現(xiàn)代碼異常時,部分會出現(xiàn)正確的提示,但客戶端的問題不會影響到服務器端正常的運行。用戶之間信息傳輸不會因為數(shù)據(jù)封裝問題出現(xiàn)丟失或亂碼。因用戶的誤操作產(chǎn)生的非法輸入信息會得到驗證及時的處理或信息提示。軟件應正常完成所有功能需求。服務器能長時間運行無故障,但當客戶訪問量大時或客戶發(fā)送信息量大時,服務器可能會出現(xiàn)端口阻塞現(xiàn)象,消息得不到響應,甚至服務器癱瘓。由于采用java設計,故可移植性較好。該軟件項目將界面程序和后臺處理程序分在不同的包中,服務器和客戶端也是在不同的包中,這樣將來還一些可以擴展系統(tǒng)的功能。7

29、.2 性能分析提示:(1)本系統(tǒng)應當具備哪些性能指標才能滿足用戶的需求?(2)如何實現(xiàn)性能指標?1. 安全性 用戶的合法性不能被偽裝。防止網(wǎng)絡對服務器的攻擊。用戶的信息應該盡可能不能被黑客截取。該軟件項目目前的安全性還有待進一步提升,考慮沒有使用數(shù)據(jù)庫,且傳輸安全模式還有待進一步測試。2. 擴展性 系統(tǒng)建成后,應在現(xiàn)行系統(tǒng)上不需要做大的改動或不影響整個系統(tǒng)結(jié)構(gòu),就可以增加功能模塊,這就必須在系統(tǒng)設計時留有接口,使其具有可擴展性和維護性。該軟件使用了接口,為了將來的擴展留有空間。3. 易用性系統(tǒng)操作的界面必須簡潔、操作方便易用、設計合理。由于這次是實驗軟件,功能并不繁多,簡單易用,但界面不夠美化

30、??梢酝ㄟ^設計更好的swing界面解決。l 基于o-sip聊天室的開發(fā)一 . 實訓項目目的和要求(說明通過本項目希望達到的目的和要求)l 熟悉jain-sip協(xié)議規(guī)定的通信工程;l 完成一個基于控制臺的聊天室,最基本要實現(xiàn)公聊和私聊內(nèi)容;二 . 實訓項目開發(fā)環(huán)境(說明本項目需要的環(huán)境) 軟件環(huán)境各種版本的widows操作系統(tǒng)(x86) 硬件環(huán)境cpu:英特爾80386以上配置內(nèi)存:32mb 硬盤空間:128m 接口/協(xié)議的約束:支持標準的ip,tcp傳輸協(xié)議 軟件質(zhì)量的約束,如正確性、健壯性、可靠性、效率(性能)、易用性、 清晰性、安全性、可擴展性、兼容性、可移植性等等。 軟件需求能在各種wi

31、ndows操作系統(tǒng)上使用;能連續(xù)工作7*24小時, 界面清晰,易于使用;最大支持2000個用戶同時在線聊天;支持可以進一步擴大在線人數(shù),切在客戶端可以進一步添加功能。三 . 實訓項目內(nèi)容(說明本項目的內(nèi)容,如:問題分析、設計方案、算法、設計圖等)3.1軟件系統(tǒng)結(jié)構(gòu)圖3.2.1客戶端系統(tǒng)登錄模塊3.2.2 客戶端聊天功能模塊3.2.3 客戶端系統(tǒng)功能模塊3.2.4 服務器端轉(zhuǎn)發(fā)功能模塊3.2.5 服務器日志備份模塊3.3功能模塊設計概述3.3.1 模塊匯總子系統(tǒng)a o-sip聊天室客戶端模塊名稱功能概述系統(tǒng)登錄登錄客戶端,需要輸入用戶名和客戶端所在的ip地址,自動分配一個(8000-999號)端

32、口;聊天功能直接輸入想說的話可以實現(xiàn)聊天室公共發(fā)言;“$+想說的話”可以與某一在線用戶私密聊天(前提要先設置密聊對象);接受公共聊天和私密聊天的內(nèi)容;系統(tǒng)功能發(fā)送“*list”,服務器可以返回當前在線用戶url;發(fā)送“*help”客戶端會提供所有支持的系統(tǒng)功能提示;發(fā)送“*quit”客戶端會退出,并發(fā)送離開消息給服務器,服務器給所有用戶廣播此離開消息;o-sip聊天室服務器端模塊名稱功能概述轉(zhuǎn)發(fā)功能接收用戶的信息并按照不同的類型,重新包裝發(fā)送(其中用戶登錄消息和離開消息為廣播,私聊消息為轉(zhuǎn)發(fā),查詢在線用戶消息為回發(fā));日志備份接收每個用戶的每一條信息(包括公聊,私聊,以及系統(tǒng)信息),加入服務器

33、的系統(tǒng)時間,保存在“d:log.txt”文件里;3.4 模塊之間的關系四 . 實訓項目結(jié)果及分析 目前我們o-sip的聊天室系統(tǒng)的開發(fā)主要是基于控制臺,由于開發(fā)時間比較倉促,所以用戶界面設計部分還未完成,在后續(xù)的開發(fā)和維護中我們將此部分予以完善,給用戶展示一個美觀,易用,可靠的用戶界面。五 . 實訓項目人員、進度安排及完成過程小組成員分工及安排組織大家討論聊天室uml設計模型,編程設計思路,解決程序出現(xiàn)的問題。編程人員,主要負責通信模式設計編程人員,主要負責分析o-sip api。 調(diào)試程序,分析并解決問題。調(diào)試程序,分析并解決問題。編程人員,主要負責消息處理,界面設計六 . 實訓項目心得及體會在這次o-sip聊天室系統(tǒng)的開發(fā)過程中,雖然我們遇到過許多困難,經(jīng)歷了許多波折,但最終設計出的軟件還是符合我們最初的設想,由

溫馨提示

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

評論

0/150

提交評論