畢業(yè)設(shè)計 ---手機聊天室設(shè)計與開發(fā)_第1頁
已閱讀1頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  畢業(yè)設(shè)計說明書</b></p><p>  手機聊天室設(shè)計與開發(fā)</p><p>  學(xué)生姓名: 學(xué)號: </p><p>  學(xué) 院: </p><p>  專 業(yè):

2、 </p><p>  指導(dǎo)教師: </p><p><b>  2011年 6 月</b></p><p>  手機聊天室設(shè)計與開發(fā)</p><p><b>  摘 要</b></p&g

3、t;<p>  網(wǎng)絡(luò)聊天室是一種應(yīng)用廣泛網(wǎng)絡(luò)聊天方式,操作簡單,功能豐富,是教學(xué)和學(xué)習(xí)面向?qū)ο蟮木幊趟枷氲睦硐腠椖???梢允褂枚喾N編程語言設(shè)計和開發(fā)出功能完善的網(wǎng)絡(luò)聊天室。</p><p>  本畢業(yè)設(shè)計論文介紹用JAVA語言設(shè)計和實現(xiàn)一個手機網(wǎng)絡(luò)聊天室的過程,本系統(tǒng)采用C/S架構(gòu)設(shè)計,整個項目分為服務(wù)器端和客戶端。使用了最新的Java 2標(biāo)準(zhǔn)Swing組件,開發(fā)出簡潔美觀和布局合理的用戶和服務(wù)器界面

4、;利用Socket網(wǎng)絡(luò)開發(fā)技術(shù)實現(xiàn)客戶端和服務(wù)器端的連接訪問,實現(xiàn)網(wǎng)絡(luò)功能;通過對數(shù)據(jù)流操作的合理設(shè)計,實現(xiàn)信息傳遞、接受和數(shù)據(jù)保存。同時,采用多線程、多任務(wù)的設(shè)計思想,開發(fā)出性能穩(wěn)定,功能全面的服務(wù)器。完整的實現(xiàn)系統(tǒng)的功能。</p><p>  通過本次畢業(yè)設(shè)計可以學(xué)到如何應(yīng)用和實現(xiàn)面向?qū)ο蟮母鞣N方法,如何使用Eclipse集成開發(fā)環(huán)境來創(chuàng)建和開發(fā)項目,從而完成系統(tǒng)的完整開發(fā)。</p><p

5、>  關(guān)鍵詞:聊天室;Java;應(yīng)用程序;Swing組件;Socket技術(shù)</p><p>  Design and development of mobile chat rooms</p><p><b>  Abstract</b></p><p>  The network chat room is a kind of applie

6、d extensive network chat method, operate in ease and the function is abundant, It can be used as a good case for learning of java design language and the Object-Oriented Programming language, There is many programming l

7、anguage of design to develop a network chat room with perfect function.</p><p>  This graduation thesis of design introduction how to use the java language design and carry out network chat room, The system

8、adoption the C/ S structure design, the whole system is divided into the server and client .Used standard modules of Swing of latest Java2, develop a simple and direct beauty user interface ,We make use of the Socket tec

9、hnology to interconnect the server and client by net-work ;organize the data by good design of data stream to sent or accept the message between users and</p><p>  I have leaned many method and things to use

10、 the Object-Oriented Programming. And make me know how use the development environment Eclipse to new program and the process to make the program.</p><p>  Keyword: chat;Java;application;swing component;sock

11、et目 錄</p><p><b>  1 引言5</b></p><p><b>  2 需求分析5</b></p><p>  2.1 編寫目的5</p><p>  2.2 研究背景5</p><p><b>  2.3 定義6</b

12、></p><p>  2.4 任務(wù)概述6</p><p>  2.4.1 開發(fā)目標(biāo)6</p><p>  2.4.2 應(yīng)用目標(biāo)6</p><p>  2.5 功能需求7</p><p>  2.5.1 功能描述7</p><p>  2.6 相關(guān)需求7</p

13、><p>  2.6.1 硬件接口7</p><p>  2.6.2 軟件接口8</p><p>  2.7 質(zhì)量性能需求8</p><p>  2.7.1 容錯性需求8</p><p>  2.7.2 穩(wěn)定性需求8</p><p>  2.7.3 軟件設(shè)計可靠性8</p

14、><p>  2.7.4 安全性9</p><p>  2.7.5 擴展性9</p><p>  2.7.6 易用性9</p><p><b>  3 概要設(shè)計9</b></p><p>  3.1 編寫目的9</p><p><b>  3.2 定義

15、9</b></p><p>  3.3 總體設(shè)計10</p><p>  3.4主要模塊描述及流程圖10</p><p>  3.4.1模塊描述10</p><p>  3.4.2主流程圖12</p><p>  4 詳細(xì)設(shè)計12</p><p>  4.1 編寫目的

16、12</p><p>  4.2 聊天室服務(wù)器端設(shè)置13</p><p>  4.2.1 ServerSocketConnection接口的使用13</p><p>  4.3 聊天室客戶端設(shè)置14</p><p>  4.3.1 SocketConnection接口的使用14</p><p>  5

17、 編碼打包15</p><p>  6 系統(tǒng)測試15</p><p>  6.1 測試舉例15</p><p>  6.1.1 測試程序登陸界面15</p><p>  6.1.2 測試程序主界面15</p><p>  6.1.3 測試程序退出16</p><p>  

18、6.2 測試項目16</p><p>  6.2.1 單元測試16</p><p>  6.2.2 組合測試17</p><p>  6.2.3 確認(rèn)測試17</p><p>  6.2.4 系統(tǒng)測試17</p><p>  6.2.5 用戶驗收測試17</p><p>

19、  6.3 測試方法18</p><p>  7 缺陷與完善18</p><p>  7.1 軟件存在的問題18</p><p>  7.2 界面變得更加美觀18</p><p><b>  8 結(jié) 論19</b></p><p>  參 考 文 獻20</p>

20、<p><b>  致 謝21</b></p><p><b>  1 引言</b></p><p>  手機及其他無線設(shè)備在給人們帶來便利的同時,自身的一些缺陷也影響了其發(fā)展:出廠時均由硬件廠商固化程序,程序不能增加、刪除,有了錯誤也不能更新、修改,若要增加新功能必須另換一部手機。Sun 公司倡導(dǎo)的J2ME 技術(shù),在通信、娛樂

21、等應(yīng)用上產(chǎn)生的手機增值服務(wù)逐漸體現(xiàn)出其影響力,對豐富人們的生活內(nèi)容、提供快捷的資訊起著不可忽視的作用。隨著J2ME 技術(shù)的不斷發(fā)展,它獲得了手機制造商越來越廣泛的支持。利用J2ME 平臺可以為手機提供很好的擴展選擇。</p><p>  J2ME 為Java 技術(shù)的一部分,是專門為移動設(shè)備設(shè)計的Java 平臺,其應(yīng)用程序可以運行在不同制造商的不同設(shè)備上,充分體現(xiàn)了Sun 公司倡導(dǎo)的“一次編寫,隨處運行”的理念。它

22、以其不斷發(fā)展的技術(shù)優(yōu)勢獲得了手機制造商越來越廣泛的支持。J2ME 平臺被認(rèn)為是當(dāng)前移動開發(fā)領(lǐng)域中最杰出的手機程序開發(fā)平臺之一,它已被開發(fā)者、設(shè)備制造商、網(wǎng)絡(luò)通信公司和消費者廣泛接受。</p><p>  針對現(xiàn)有手機短信業(yè)務(wù)存在的無法提供多人之間交流的不足,本文利用J2ME 提供的聊天通信功能,開發(fā)一套簡單的手機網(wǎng)絡(luò)聊天系統(tǒng),實現(xiàn)多人聊天功能。</p><p><b>  2

23、需求分析</b></p><p><b>  2.1 編寫目的</b></p><p>  明確用戶對手機聊天室的功能需求和性能需求,并將這些需求用規(guī)范化的語言和規(guī)范化的結(jié)構(gòu)完整、準(zhǔn)確地表達(dá)清楚,以此統(tǒng)一軟件開發(fā)者和用戶對該軟件的理解和認(rèn)識,并使用戶了解工作流程。</p><p>  需求分析是整個軟件開發(fā)的依據(jù),它對以后階段的工

24、作起指導(dǎo)作用。本章也是項目完成后系統(tǒng)驗收的依據(jù)。</p><p><b>  2.2 研究背景</b></p><p>  隨著手機的日益普及,短信業(yè)務(wù)的一些缺點也日益顯現(xiàn):(1)不能實現(xiàn)一條短信發(fā)送到多個不同號碼(一些手機上的群發(fā)功能只是將短信反復(fù)發(fā)送,實際仍需反復(fù)計費)。(2)短信長度限制(一般為70 個漢字或140 個字母)限制了用戶的使用。</p>

25、;<p>  本文針對上述短信業(yè)務(wù)的不足,利用手機能夠方便接入無線網(wǎng)絡(luò)的優(yōu)勢,設(shè)計了一套手機聊天系統(tǒng)。這套系統(tǒng)通過GPRS 網(wǎng)絡(luò)發(fā)送信息(信息無長度限制),然后由服務(wù)器對消息進行轉(zhuǎn)發(fā)(不再對發(fā)送方產(chǎn)生費用),實現(xiàn)了多人之間較為便捷的交流。</p><p><b>  2.3 定義</b></p><p>  需求:用戶解決問題或達(dá)到目標(biāo)所需的條件或功能

26、;系統(tǒng)或系統(tǒng)部件要滿足合同、標(biāo)準(zhǔn),規(guī)范或其它正式規(guī)定文檔所需具有的條件或權(quán)能。</p><p><b>  2.4 任務(wù)概述</b></p><p>  2.4.1 開發(fā)目標(biāo)</p><p>  手機網(wǎng)絡(luò)聊天室是一項應(yīng)用廣泛,并且實用性強的一個應(yīng)用,雖然其功能簡單,但是在其開發(fā)技術(shù)和過程中,能夠充分學(xué)習(xí)和使用J2ME的技術(shù),要求實現(xiàn)一個手機

27、收發(fā)消息的應(yīng)用軟件,該軟件采用J2ME技術(shù)實現(xiàn)軟件的流程控制、邏輯處理和記錄存儲等功能?;竟δ馨ǎ悍?wù)器端開發(fā),客戶端開發(fā),盡量添加一些輔助性的功能以使功能更完美。使用 Swing組件技術(shù),實現(xiàn)網(wǎng)絡(luò)的功能使用 Socket/Server Socket 技術(shù),實現(xiàn)數(shù)據(jù)的保存使用JDBC數(shù)據(jù)庫連接和操作技術(shù),并且在開發(fā)過程當(dāng)中,能充分的使用和體會面向?qū)ο蠹夹g(shù)的原理和方法。</p><p>  所以該項目可以使自己

28、在JAVA技術(shù)方面得到全面應(yīng)用,使自己項目開發(fā)能力的一個很好體現(xiàn)。</p><p>  2.4.2 應(yīng)用目標(biāo)</p><p>  應(yīng)用目標(biāo):實現(xiàn)一個手機收發(fā)消息的應(yīng)用軟件,該軟件采用J2ME技術(shù)實現(xiàn)軟件的流程控制、邏輯處理和記錄存儲等功能。</p><p><b>  2.5 功能需求</b></p><p>  2

29、.5.1 功能描述</p><p>  基于J2ME 的手機客戶端程序支持建立網(wǎng)絡(luò)連接、傳送請求和遠(yuǎn)程訪問服務(wù)器,是直接與用戶交互的平臺。而服務(wù)器端用于接收客戶端的請求,執(zhí)行與數(shù)據(jù)庫的通信,并完成后臺邏輯的運算,最后將處理結(jié)果返回給手機客戶端。</p><p>  本系統(tǒng)是java基于c/s模式的聊天室程序。聊天室共分為服務(wù)器端和客戶端兩個部分,服務(wù)器端程序主要負(fù)責(zé)偵聽客戶端發(fā)來的消息,

30、客戶端需要登錄到服務(wù)器端才能實現(xiàn)正常的聊天功能。</p><p> ?。?)服務(wù)器端的主要功能有:</p><p>  a.在特定端口上進行偵聽,等待客戶端連接。</p><p>  b.用戶可以配置服務(wù)器的偵聽端口,默認(rèn)是8888。</p><p>  c.可以向已經(jīng)連接的客戶端發(fā)送體統(tǒng)消息。</p><p><

31、;b>  d.統(tǒng)計在線人數(shù)。</b></p><p>  e.停止服務(wù)時,斷開所有的用戶連接。</p><p> ?。?)客戶端的主要功能有:</p><p>  a.連接到已經(jīng)開啟聊天服務(wù)的服務(wù)端。</p><p>  b.用戶可以配置要連接的服務(wù)器IP地址和端口號。</p><p>  c.用戶可

32、以配置連接后的用戶名。</p><p>  d.服務(wù)器開啟時,用戶可以隨時登錄與注消。</p><p>  c.用戶可以想所有的人或者指定的個人發(fā)送消息。</p><p><b>  2.6 相關(guān)需求</b></p><p>  2.6.1 硬件接口</p><p>  不需要特定的硬件或硬件

33、接口進行支撐。</p><p>  2.6.2 軟件接口</p><p>  開發(fā)環(huán)境:windows(XP/vista/win7)+Eclipse+EclipseMe+WTK</p><p><b>  開發(fā)語言:java</b></p><p>  CLDC: 1.0</p><p>  

34、MIDP: 1.0</p><p>  應(yīng)用程序類型:jar打包文件</p><p>  2.7 質(zhì)量性能需求</p><p>  2.7.1 容錯性需求</p><p>  當(dāng)出現(xiàn)代碼異常時,出現(xiàn)正確的提示,不會影響整個系統(tǒng)的運行。用戶之間信息傳輸不會因為數(shù)據(jù)封裝問題出現(xiàn)丟失或亂碼。因用戶的誤操作產(chǎn)生的異常應(yīng)做出及時的處理或信息提示。

35、</p><p>  2.7.2 穩(wěn)定性需求</p><p>  軟件應(yīng)正常完成所有功能需求。服務(wù)器端應(yīng)長時間運行無故障,故障修復(fù)時間一般控制在3小時內(nèi),除非出現(xiàn)惡性攻擊、病毒破壞、系統(tǒng)資源不足、硬件故障、操作系統(tǒng)或數(shù)據(jù)庫系統(tǒng)崩潰網(wǎng)絡(luò)中斷等情況,要求系統(tǒng)連續(xù)運行一周,不允許出現(xiàn)內(nèi)存泄露。</p><p>  要求系統(tǒng)可以承受告警風(fēng)暴和大數(shù)據(jù)量的沖擊,不出現(xiàn)內(nèi)存溢出

36、等現(xiàn)象。</p><p>  2.7.3 軟件設(shè)計可靠性</p><p>  要確定合適的模塊粒度,各模塊之間要求松耦合,高內(nèi)聚;從而使整個系統(tǒng)的可靠性和穩(wěn)定性得到提高,并且便于系統(tǒng)維護,和新模塊的添加。</p><p><b>  2.7.4 安全性</b></p><p>  安全性是防止網(wǎng)絡(luò)方面的攻擊。</p

37、><p>  2.7.5 擴展性</p><p>  系統(tǒng)建成后,應(yīng)在現(xiàn)行系統(tǒng)上不需要做大的改動或不影響整個系統(tǒng)結(jié)構(gòu),就可以增加功能模塊,這就必須在系統(tǒng)設(shè)計時留有接口,使其具有可擴展性和維護性。</p><p>  2.7.6 易用性</p><p>  系統(tǒng)操作的界面必須簡潔、操作方便易用、設(shè)計合理。</p><p>

38、;<b>  3 概要設(shè)計</b></p><p><b>  3.1 編寫目的</b></p><p>  從該階段開發(fā)正式進入軟件的實際開發(fā)階段,本階段完成系統(tǒng)的大致設(shè)計并明確系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)與軟件結(jié)構(gòu)。在軟件設(shè)計階段主要是把一個軟件需求轉(zhuǎn)化為軟件表示的過程,這種表示只是描述出軟件的概貌。本概要設(shè)計說明書的目的就是進一步細(xì)化軟件階段得出的軟件

39、的總體概貌,把它加工成災(zāi)程序細(xì)節(jié)上非常接近源程序的軟件表示。</p><p>  該階段目的在于明確網(wǎng)絡(luò)聊天室系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)和軟件總體結(jié)構(gòu),各個軟件模塊的功能說明,數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié),系統(tǒng)運行配置與應(yīng)用方式以及使用的關(guān)鍵技術(shù)。</p><p><b>  3.2 定義</b></p><p>  概要設(shè)計:是把需求分析得到的DFD轉(zhuǎn)換為軟件結(jié)構(gòu)和數(shù)

40、據(jù)結(jié)構(gòu)。設(shè)計軟件結(jié)構(gòu)的具體任務(wù)是:將一個復(fù)雜系統(tǒng)按功能進行模塊劃分、建立模塊的層次結(jié)構(gòu)及調(diào)用關(guān)系、確定模塊間的接口及人機界面等。數(shù)據(jù)結(jié)構(gòu)設(shè)計包括數(shù)據(jù)特征的描述、確定數(shù)據(jù)的結(jié)構(gòu)特性、以及數(shù)據(jù)庫的設(shè)計。</p><p><b>  3.3 總體設(shè)計</b></p><p>  Socket通信是網(wǎng)絡(luò)通信的基本方式之一,通常由服務(wù)器端和客戶端兩部分組成。服務(wù)器端Socket

41、首先要處于等待連接的監(jiān)聽狀態(tài),實時監(jiān)控指定端口,等待客戶端Socket連接服務(wù)器端的Socket,連接時需要指定服務(wù)器的地址和連接端口。當(dāng)服務(wù)器端Socket監(jiān)聽到或者接收到客戶端Socket的連接請求時,就對客戶端Socket的請求進行響應(yīng),建立一個新的線程,并把服務(wù)器端Socket的描述發(fā)給客戶端,這樣就建立了一個Socket連接。連接建立后,通過輸入或者輸出流發(fā)送或接收數(shù)據(jù),而服務(wù)器端的Socket繼續(xù)處于監(jiān)聽狀態(tài),等待其他客戶端

42、的連接。在數(shù)據(jù)傳輸完畢后,客戶端會斷開連接,這樣一個完整的數(shù)據(jù)傳輸過程就完成了。</p><p>  基本Socket的數(shù)據(jù)傳輸?shù)幕静襟E:</p><p>  服務(wù)器端打開并監(jiān)聽接口;</p><p><b>  客戶端進行連接;</b></p><p>  連接確認(rèn)并打開輸入輸出流;</p><p

43、><b>  傳輸數(shù)據(jù);</b></p><p><b>  關(guān)閉連接。</b></p><p>  MIDP中提供了SocketConnection和ServerSocketConnection接口用來實現(xiàn)對Socket通信的支持,其中SocketConnection用于實現(xiàn)客戶端的Socket連接,ServerSocketConnect

44、ion用于服務(wù)器端的Socket連接。</p><p>  3.4主要模塊描述及流程圖</p><p><b>  3.4.1模塊描述</b></p><p>  本手機聊天室系統(tǒng)分為服務(wù)端和聊天室客戶端,服務(wù)端與客戶端之間通過套接口Socket(TCP)連接。在java中使用套接口相當(dāng)簡單,Java API為處理套接口的通信提供了一個類jav

45、a.net.Socket.,使得編寫網(wǎng)絡(luò)應(yīng)用程序相對容易.服務(wù)器采用多線程以滿足多用戶的請求,通過JDBC與后臺數(shù)據(jù)庫連接,并通過創(chuàng)建一個ServerSocket對象來監(jiān)聽來自客戶的連接請求,默認(rèn)IP地址為:127.0.0.1默認(rèn)端口為8888。</p><p>  (1)聊天室服務(wù)端模塊圖:</p><p>  端口服務(wù):輸入要偵聽的端口,默認(rèn)為8888;</p><

46、p>  啟動服務(wù):啟動服務(wù)器,并開始在設(shè)置的端口中偵聽,客戶端用戶可以登錄并開始聊天;</p><p>  停止服務(wù):關(guān)閉服務(wù)器,偵聽結(jié)束。客戶端用戶不能再聊天;</p><p>  發(fā)送系統(tǒng)消息:服務(wù)器端給所有人或者個別用戶發(fā)送消息。</p><p>  消息顯示:可以顯示所有用戶的聊天記錄,和上線、下線信息。</p><p>  退

47、出服務(wù)器:退出程序,并停止服務(wù);</p><p>  (2)聊天室客戶端模塊圖:</p><p>  用戶設(shè)置:用戶可以設(shè)置自己的用戶名進行聊天;</p><p>  連接設(shè)置:用戶可以設(shè)置自己的服務(wù)器的IP地址和端口號,默認(rèn)的連接地址為:127.0.0.1:8888;</p><p>  用戶登錄:只能在聊天室服務(wù)端已開啟的情況下,用戶才能

48、登錄,用戶登錄之后才能開始聊天,登錄后不能再修改用戶設(shè)置和連接設(shè)置;</p><p>  用戶注銷:退出聊天,可以繼續(xù)修改用戶設(shè)置和連接設(shè)置;</p><p>  發(fā)送和接收聊天信息:用戶可以給所有人或者個別用戶發(fā)送信息,并能看到其他用戶發(fā)送給自己或所有人的消息;</p><p>  退出:關(guān)閉所有聊天并退出客戶端。</p><p><

49、b>  3.4.2主流程圖</b></p><p><b>  設(shè)置偵聽端口</b></p><p><b>  默認(rèn)端口:8888</b></p><p><b>  設(shè)置用戶名</b></p><p>  默認(rèn)連接地址或用戶名</p><

50、;p><b>  設(shè)置IP地址和端口</b></p><p><b>  4 詳細(xì)設(shè)計</b></p><p><b>  4.1 編寫目的</b></p><p>  詳細(xì)設(shè)計說明書是對系統(tǒng)架構(gòu)進行詳細(xì)直觀描述,從而完成詳細(xì)設(shè)計,是軟件實現(xiàn)的基礎(chǔ)。此文檔主要是說明手機電話薄的功能范圍,各個

51、層次中的每個程序(每個模塊或子程序)的設(shè)計考慮,為程序員編寫程序提供依據(jù),可以有針對性的進行系統(tǒng)開發(fā)、測試、驗收等各方面的工作。</p><p>  4.2 聊天室服務(wù)器端設(shè)置</p><p>  4.2.1 ServerSocketConnection接口的使用</p><p>  ServerSocketConnection接口實現(xiàn)了對服務(wù)器端Socket連

52、接的支持,客戶端的Socket可以連接由ServerSocketConnection創(chuàng)建的服務(wù)器Socket連接。使用Connector類的open(String url)方法返回一個ServerSocketConnection,其中參數(shù)與創(chuàng)建ServerSocketConnection時的參數(shù)基本一樣,只是不需要指定主機地址。</p><p>  獲取IP地址和端口號的方法:</p><p&

53、gt;  getLocalAddress()//返回本地的IP號;</p><p>  getLocalPort9()//返回本地的端口號.</p><p>  服務(wù)器端程序處于等待狀態(tài),一直到接收到客戶端的Socket連接請求,然后創(chuàng)建Socket連接并返回表示該連接的SocketConnection實例。</p><p>  建立服務(wù)器端Socket的代碼基本結(jié)

54、構(gòu)如下:</p><p>  //獲取服務(wù)器端的Socket</p><p>  ServerSocketConnection</p><p>  Server=( ServerSocketConnection)Connector.open(“socket://:1080”)</p><p><b>  //等待連接</b&g

55、t;</p><p>  SocketConnection sc=(SocketConnection)server.acceptAndOpen();</p><p>  //設(shè)置服務(wù)器端Socket屬性</p><p>  Server.setSocketOption(SocketConnection.RCVBUF,128);</p><p>

56、;  Server.setSocketOption(SocketConnection.SNDBUF,128);</p><p>  //得到Socket對象的輸入流,用于讀取數(shù)據(jù)</p><p>  InputStream is=server.openInputStream();</p><p>  //得到Socket對象的輸出流,用于發(fā)送數(shù)據(jù)</p>

57、<p>  OutputStream os=server.openOutputStream();</p><p>  4.3 聊天室客戶端設(shè)置</p><p>  4.3.1 SocketConnection接口的使用</p><p>  SocketConnection接口實現(xiàn)了對客戶端Socket連接的支持,是使用Connector類的open

58、(String url)方法,但返回的是SocketConnection,其中參數(shù)url的基本格式為:socket://<hostport>.其中,hostport是以host:port格式出現(xiàn)的服務(wù)器地址和鏈接端口號字符串,服務(wù)器的地址是主機名或者是具體的IP地址。</p><p>  獲取IP地址和端口號的方法:</p><p>  getAddress()//返回服務(wù)器端

59、的IP地址</p><p>  getLocalAddress()//返回本機的IP地址</p><p>  getLocalPort()//返回本地的端口號</p><p>  getPort()//返回服務(wù)器的端口號</p><p>  通過setSocketOption()方法設(shè)置連接選項:</p><p>  

60、public void setSocketOption(byte option,int value)</p><p>  建立客戶端Socket的代碼基本結(jié)構(gòu)如下:</p><p>  //獲得客戶端的Socket</p><p>  SocketConnection</p><p>  sc=( SocketConnection)Conne

61、ctor.open(“socket://localhost:1080”);</p><p>  //設(shè)置客戶端Socket屬性</p><p>  sc.setSocketOption(SocketConnection.LINGER,6);</p><p>  //得到Socket對象的輸入流,用于讀取數(shù)據(jù)</p><p>  InputSt

62、ream is=server.openInputStream();</p><p>  //得到Socket對象的輸出流,用于發(fā)送數(shù)據(jù)</p><p>  OutputStream os=server.openOutputStream();</p><p><b>  5 編碼打包</b></p><p>  先設(shè)置.

63、jad文件夾里面的參數(shù),Required中的參數(shù)一般都設(shè)計為最低,以配合真機更好的運用,在Midlets中添加上游戲的名字以及對應(yīng)主函數(shù)名。然后在工程右鍵→J2ME→Create Package就可以完成打包了,打完的包會存在工程目錄下的deployed中。然后發(fā)到支持Java的手機就可以了。</p><p><b>  6 系統(tǒng)測試</b></p><p>  為

64、了確保本系統(tǒng)能夠正常運行,需要在發(fā)布之后做一次較全面的測試?,F(xiàn)將具體操作及過程舉例說明如下:</p><p><b>  6.1 測試舉例</b></p><p>  6.1.1 測試程序登陸界面</p><p>  打開程序后,首先出現(xiàn)的是登錄頁面,在設(shè)置好網(wǎng)絡(luò)IP和端口號之后,輸入用戶名和密碼,如果連接服務(wù)器成功則提示用戶輸入的用戶名和

65、密碼是否正確,否則提示連接不到服務(wù)器,并提示正確設(shè)置服務(wù)器IP和服務(wù)端口。其中端口號只能設(shè)置1024之后的端口號,前面的地址為服務(wù)器作為保留地址用,否則程序會提示錯誤。</p><p>  6.1.2 測試程序主界面</p><p>  進入主界面后,主頁面會顯示在線用戶列表區(qū)、信息顯示區(qū)、功能設(shè)置區(qū)、信息發(fā)送區(qū)、功能按鈕區(qū)。用戶可以在用戶列表中看到目前在線的其他用戶,并在信息顯示區(qū)內(nèi)看

66、到系統(tǒng)提示。用戶可以在信息發(fā)送區(qū)內(nèi)輸入自己的發(fā)送內(nèi)容,在主界面的顯示區(qū)中可以不斷的查看到其他用戶發(fā)送過來的信息,并可以通過點擊查看記錄按鈕查看保存的聊天記錄。</p><p>  6.1.3 測試程序退出</p><p>  當(dāng)單擊退出按鈕或窗體的關(guān)閉時,用戶將發(fā)送退出信息,離開聊天室,其他用戶可以得到系統(tǒng)提示用戶下線并刷新用戶列表。當(dāng)服務(wù)器出線異常或關(guān)閉時,客戶端將提示服務(wù)中斷并退出系

67、統(tǒng)。</p><p><b>  6.2 測試項目</b></p><p>  由于實際開發(fā)過程中還是不可避免地會產(chǎn)生差錯,系統(tǒng)中通常可能隱藏著錯誤和缺陷,不經(jīng)周密測試的系統(tǒng)投入運行,將會造成難以想象的后果,因此系統(tǒng)測試是軟件開發(fā)過程中為保證軟件質(zhì)量必須進行的工作。大量統(tǒng)計資料表明,系統(tǒng)測試的工作量往往占軟件開發(fā)總工作量的30%以上。因此,我們必須重視測試工作。&l

68、t;/p><p>  由于程序中隱藏的缺陷只在特定的環(huán)境下才有可靠顯露,系統(tǒng)缺陷通常是由于對某些特定情況考慮不周造成的。因此測試不是為了表明程序正確;成功的測試也不是沒有發(fā)現(xiàn)錯誤的測試。有意義的軟件測試應(yīng)該是從“破壞”軟件系統(tǒng)的角度出發(fā),精心設(shè)計最有可以暴露程序系統(tǒng)缺陷的測試方案。因此軟件測試的目標(biāo)應(yīng)該是以盡可能少的代價和時間找出軟件系統(tǒng)中潛在的錯誤和缺陷。</p><p>  從產(chǎn)品角度看,

69、測試計劃中的測試項目包括軟件結(jié)構(gòu)中的分系統(tǒng)層、子系統(tǒng)層、功能模塊層、程序模塊層中的各類模塊,從測試本身看,分為單元測試,組合測試,確認(rèn)測試等。測試對象是隨不同階段而異的,最基本、最初的測試是單元測試,后面的組合測試、確認(rèn)測試都是以被測過的模塊作為測試對象的。</p><p>  6.2.1 單元測試</p><p>  單元測試也稱模塊測試或程序測試,單元測試是對每個模塊單獨進行的,驗證

70、模塊接口與設(shè)計說明書是否一致,對模塊的所有主要處理路徑進行測試且與預(yù)期的結(jié)構(gòu)進行對照,還要對所有錯誤處理路徑進行測試。對源碼進行審查,對照設(shè)計說明書,表態(tài)地檢查源程序是否符合功能的邏輯要求,是進行單元測試前的重要工作工。單元測試一般是由程序員完成,也稱程序調(diào)試。</p><p>  6.2.2 組合測試</p><p>  組合測試也稱集成測試或子系統(tǒng)測試,通常采用自頂向下測試和自底向上

71、測試兩種測試方法。組合測試的對象是指已經(jīng)通過單元測試的模塊,不是對零散模塊進行單個測試,而是用系統(tǒng)化的方法裝配和測試軟件系統(tǒng),是一個嚴(yán)格的過程,必須認(rèn)真地進行,其計劃的產(chǎn)生和單元模塊測試的完成日期要協(xié)調(diào)起來,這種測試應(yīng)在系統(tǒng)目標(biāo)機上進行,造成系統(tǒng)應(yīng)用的環(huán)境條件,除了開發(fā)部分項目負(fù)責(zé)人參加以外,還應(yīng)該有相應(yīng)系統(tǒng)的用戶參加,給評審員進行演示。</p><p>  6.2.3 確認(rèn)測試</p><

72、p>  確認(rèn)測試是對通過組合測試的軟件進行的,這些軟件已經(jīng)存于系統(tǒng)目標(biāo)設(shè)備的介質(zhì)上,確認(rèn)測試的目的是表明軟件是可以工作的,并且符合“軟件需求說明書”中規(guī)定的全部功能和性能要求。確認(rèn)測試是按照這些要求定出的“確認(rèn)測試計劃”進行的。測試工作是由一個獨立的組織進行,而且測試要從用戶的角度出發(fā)。</p><p>  6.2.4 系統(tǒng)測試</p><p>  系統(tǒng)測試是對整體性能的測試,主要

73、解決各子系統(tǒng)之間的數(shù)據(jù)通信和數(shù)據(jù)共享問題以及檢測系統(tǒng)是否達(dá)到用戶的實際要求,系統(tǒng)測試的依據(jù)是系統(tǒng)分析報告。系統(tǒng)測試應(yīng)在系統(tǒng)的整個范圍內(nèi)進行,這種測試不只對軟件進行,而是對構(gòu)成系統(tǒng)的硬、軟件一起進行。系統(tǒng)測試與建構(gòu)同時進行或略慢。系統(tǒng)測試需要確認(rèn)從頭到尾的功能正常才算完成,應(yīng)當(dāng)盡量避免系統(tǒng)測試延到項目末尾進行。</p><p>  6.2.5 用戶驗收測試</p><p>  在系統(tǒng)測試完

74、成后,進行用戶的驗收測試,它是用戶在實際應(yīng)用環(huán)境中所進行的真實數(shù)據(jù)測試。</p><p>  在具體的測試中,一般應(yīng)遵循以下原則:由程序設(shè)計者之外的人進行測試;測試用例應(yīng)由兩部分組成:輸入數(shù)據(jù)和預(yù)期輸出結(jié)果;應(yīng)選用不合理的輸入數(shù)據(jù)與非法輸入測試;不僅要檢驗程序是否實現(xiàn)預(yù)期功能,還應(yīng)檢查程序是否做了不應(yīng)該做的工作;集中測試容易出錯的程序模塊;對程序修改以后,必須重新進行測試。</p><p>

75、;<b>  6.3 測試方法</b></p><p>  一般來說,對程序測試有兩種測試方法:如果已經(jīng)知道了軟件系統(tǒng)應(yīng)具有的功能,可通過測試來對每個功能是否都能正常使用;如果知道程序的內(nèi)部工作過程,可以通過測試來檢測程序內(nèi)部是否按照規(guī)格說明書的規(guī)定正常進行。前一種方法稱為黑盒測試,后一種方法稱為白盒子測試。黑盒測試又稱為功能測試,白盒子測試又稱為結(jié)構(gòu)測試。</p><

76、p>  因為時間和項目的關(guān)系,沒有完全按照上述的測試方法進行系統(tǒng)的測試,但在在開發(fā)的過程當(dāng)中,保證部分合理的測試,并正確運行驗證,證明本系統(tǒng)具有相當(dāng)程序的穩(wěn)定性。</p><p><b>  7 缺陷與完善</b></p><p>  7.1 軟件存在的問題</p><p>  軟件已經(jīng)編寫好了,但是還有許多可以改進的地方;同時還存在

77、著一些小問題。</p><p>  還有一些功能上的缺陷,這里我列舉一下,并提出一些解決的辦法,希望以后可以改進。</p><p> ?。?)操作的方便性、登陸時添加一個主界面;</p><p> ?。?)在功能方面可以進一步增加,如實現(xiàn)用戶間的文件傳輸,并可以進行視屏,共享音樂等高級功能。</p><p> ?。?)執(zhí)行效率方面可以有待提高

78、,優(yōu)化代碼結(jié)構(gòu),減少系統(tǒng)內(nèi)存泄露,提高運行穩(wěn)定性等</p><p>  7.2 界面變得更加美觀</p><p>  由于一直專注于功能的實現(xiàn),從而忽略了界面的設(shè)計,本軟件今后可以添加背景,并可以使窗體風(fēng)格更合理和更美觀,并且要使用戶有更多的自定義功能,設(shè)置自己的喜好和風(fēng)格等等。</p><p><b>  8 結(jié) 論</b></p&

79、gt;<p>  隨著移動通信技術(shù)的發(fā)展和移動終端設(shè)備的廣泛應(yīng)用,基于J2ME 的手機程序正成為移動增值服務(wù)的熱點,支持移動商務(wù)和個人移動通信的應(yīng)用程序正得到快速的發(fā)展和廣泛應(yīng)用。本文采用J2ME/Servlet 技術(shù)構(gòu)建了一個手機聊天系統(tǒng)模型,并對其進行了分析、模擬實驗,其結(jié)果表明這一構(gòu)想是一個具有較好創(chuàng)意的移動應(yīng)用。</p><p>  首先,我選擇本課題緣由是對項目有較深的理解和對聊天通訊軟件

80、有豐富的使用和接觸經(jīng)驗,可以設(shè)計和開發(fā)本項目時更有效率。并且對網(wǎng)絡(luò)開發(fā)有濃厚的興趣,對具有網(wǎng)絡(luò)功能的項目更有成就感。</p><p>  學(xué)習(xí)期間,通過學(xué)校開設(shè)的基礎(chǔ)課程,扎實系統(tǒng)的學(xué)習(xí)了軟件的基礎(chǔ)知識,,并對面向?qū)ο缶幊陶Z言有了進一步的理解,對軟件專業(yè)逐步的建立起自己的知識體系框架。</p><p>  通過這次的畢業(yè)設(shè)計,使自己在JAVA2編程語言的使用方面得到一個全面鍛煉自己的機會,

81、在個模塊的界面開發(fā)方面,充分的學(xué)習(xí)和利用了JAVA Swing界面開發(fā)技術(shù),使自己在界面應(yīng)用和布局方面得到更多的實踐,應(yīng)用Socket技術(shù)實現(xiàn)網(wǎng)絡(luò)連接功能,對網(wǎng)絡(luò)的實現(xiàn)和通信方面有了進一步的理解,并通過多線程方面的應(yīng)用,使客戶端和服務(wù)端可以實現(xiàn)多任務(wù)功能,在整個開發(fā)過程當(dāng)中應(yīng)用軟件工程的開發(fā)步驟,使自己專業(yè)理論知識的到進一步的鞏固,項目開發(fā)經(jīng)驗有不少的收獲。</p><p>  通過完成這次畢業(yè)設(shè)計項目,使自己在

82、項目實際開發(fā)方面有了進一步的提高,并使自己感覺到成功的喜悅,并對自己在專業(yè)的未來發(fā)展更充滿信心,對自己在今后的工作中更好的幫助。</p><p><b>  參 考 文 獻</b></p><p>  [1] [美]Rogers Cadenhead. Java編程入門經(jīng)典.梅興文譯.第4版.北京:人民郵電出版社,2007</p><p>  

83、[2] [美]Bruce Eckel. Thinking In Java.英文第4版.北京:機械工業(yè)出版社,2007</p><p>  [3] 陳軼.姚曉昆編著.Java程序設(shè)計實驗指導(dǎo).北京:清華大學(xué)出版社,2006</p><p>  [4] 楊昭編著.二級Java語言程序設(shè)計教程.北京:中國水利水電出版社,2006</p><p>  [5] 趙文靖編著.J

84、ava程序設(shè)計基礎(chǔ)與上機指導(dǎo).北京:清華大學(xué)出版社,2006</p><p>  [6] 趙毅主編.跨平臺程序設(shè)計語言——Java.西安:西安電子科技大學(xué)出版社,2006</p><p>  [7] 王路群.Java高級程序設(shè)計.北京:中國水利水電出版社,2006</p><p>  [8] 雍俊海編著.Java程序設(shè)計習(xí)題集.北京:清華大學(xué)出版社,2006<

85、/p><p>  [9] 朱福喜編著.Java語言習(xí)題與解析.北京:清華大學(xué)出版社,2006</p><p>  [10] 吳其慶編著.Java程序設(shè)計實例教程.北京:冶金工業(yè)出版社,2006</p><p>  [11] 柳西玲.許斌編著.Java語言應(yīng)用開發(fā)基礎(chǔ).北京:清華大學(xué)出版社,2006</p><p>  [12] 施霞萍等編著.Ja

86、va程序設(shè)計教程 第2版.北京:機械工業(yè)出版社,2006</p><p>  [13] [美]Herbert Schidt著.Java參考大全.鄢愛蘭.鹿江春譯.北京:清華大學(xué)出版社,2006</p><p>  [14] 宛延闿等編著.實用Java程序設(shè)計教程.北京:機械工業(yè)出版社,2006</p><p>  [15] 陳國君等編著.Java2程序設(shè)計基礎(chǔ).北京

87、:清華大學(xué)出版社,2006</p><p>  [16] 鄭莉.王行言.馬素霞編著.Java語言程序設(shè)計.北京:清華大學(xué)出版社,2006</p><p>  [17] 丁振凡主編.Java語言實用教程.北京:北京郵電大學(xué)出版社,2005</p><p>  [18] 朱喜福等編.Java程序設(shè)計.北京:人民郵電出版社,2005</p><p>

88、;  [19] 孫更新,孫海倫等.Java ME 手機應(yīng)用開發(fā)大全.北京科海出版社,2008:136-189</p><p>  [20] 詹建飛. JAVA ME 核心技術(shù)與最佳實踐. 電子工業(yè)出版社,2005:39</p><p><b>  致 謝</b></p><p>  在這幾個月的畢業(yè)設(shè)計過程中,通過導(dǎo)師的指導(dǎo),了解并熟悉了完成

89、一個項目的具體過程和步驟,使自己在整個過程當(dāng)中不段的學(xué)習(xí)解決問題的能力。軟件專業(yè)是一門比較熱門和前沿的學(xué)科,涉及許多知識領(lǐng)域和技術(shù),擁有許多最新知識資料,應(yīng)在項目的開發(fā)過程中,不斷的查閱相關(guān)的幫助文檔。程序的開發(fā)過程要養(yǎng)成良好的習(xí)慣,并遵循一定的標(biāo)準(zhǔn)規(guī)范,將項目進行合理分析設(shè)計。</p><p>  畢業(yè)設(shè)計是我們大學(xué)期間最后的一次鍛煉和考核,經(jīng)過這段時間的努力,使自己在專業(yè)知識方面有個全面復(fù)習(xí)的機會,使自己在設(shè)

90、計工程中得到最好的實踐鍛煉,并學(xué)會了許多在一個項目開發(fā)過程中必須具備的素質(zhì)。</p><p>  我要衷心感謝xx導(dǎo)師在我的畢業(yè)設(shè)計過程中給予我的指導(dǎo)和幫助,導(dǎo)師淵博的專業(yè)知識,嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度,精益求精的工作作風(fēng),誨人不倦的高尚師德,嚴(yán)以律己、寬以待人的崇高風(fēng)范,樸實無華、平易近人的人格魅力對我影響深遠(yuǎn)。不僅使我樹立了遠(yuǎn)大的學(xué)術(shù)目標(biāo)、掌握了基本的研究方法,還使我明白了許多待人接物與為人處世的道理。本論文從選題到完

溫馨提示

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

評論

0/150

提交評論