畢業(yè)論文-格式參考_第1頁
畢業(yè)論文-格式參考_第2頁
畢業(yè)論文-格式參考_第3頁
畢業(yè)論文-格式參考_第4頁
畢業(yè)論文-格式參考_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、分類號:單位代碼:10452e1妙療交鴉linyi university學士學位畢業(yè)設計(論文)x x x x x的設計與實現(xiàn)姓 名學 號年 級_專 業(yè)系(院)指導教師_20年5刀木文描述了 j“va技術的特點以及在局域網(wǎng)上的使用情況,介紹這種技術的重要編程 方法和以java開發(fā)技術為核心的聊天系統(tǒng)。該系統(tǒng)開發(fā)主要包括一個網(wǎng)絡聊天服務器程 序和一個網(wǎng)絡聊天客戶程序兩個方面。前者通過sockel套接字建立服務器,服務器能讀 取、轉(zhuǎn)發(fā)客戶端發(fā)來信息,并能刷新用戶列表。后者通過與服務器建立連接,來進行客戶 端與客戶端的信息交流。其中用到了局域網(wǎng)通信機制的原理,通過直接繼承thread類來 建立多線程

2、。開發(fā)中利用了計算機網(wǎng)絡編程的基本理論知識,如tcp/ip協(xié)議、客戶端/服 務器端模式(client/server模式)、網(wǎng)絡編程的設計方法等。該局域網(wǎng)聊天工具采用jdk 和jcrcator為基本開發(fā)環(huán)境和java語言進行編寫。關鍵詞:局域網(wǎng);目錄h'j s1第1章java的網(wǎng)絡功能與編程21. 1java的網(wǎng)絡功能與編程21. 1. 1 java 概述21. 1.2 java 的特點21. 1.3 java語言的應用前景51.2ip/tcp協(xié)議常識61. 3 socket的簡介錯誤!未定義書簽。第2章規(guī)劃設計82. 1課題來源82.2需求分析82. 3研究價值9第3章系統(tǒng)分析與設計方

3、案103. 1聊天系統(tǒng)的總休設計要點103.2聊天系統(tǒng)的設計步驟及功能模塊劃分10第4章系統(tǒng)設計與實現(xiàn)114. 1開發(fā)環(huán)境工具114.2環(huán)境要求錯誤!未定義書簽。4. 3聊天系統(tǒng)的測試錯誤!未定義書簽。結(jié)論11參考文獻13致謝14冃ij s面向?qū)ο蟪绦蛟O計方法是目前軟件開發(fā)的主流方法。java語言是目前功能最強、應用 最廣泛的一種完全面向?qū)ο蟪绦蛟O計語言,具有而向?qū)﹀?、與平臺無關、多線程以及強大 的網(wǎng)絡編程功能等特點。隨著計算機的飛速發(fā)展,人們的生活發(fā)生了很大的變化,而網(wǎng)上聊天也成了人們愛好 網(wǎng)絡的原因z-o計算機的普及給我們的學習、生活和工作帶來了方便,軟件和硬件技術 已經(jīng)應用到教學上,各地

4、的教育培訓基地也很多,但是這給我們提出了更髙的要求,更需 要我們在這方面付出更多的努力,培育出更多的it人才。網(wǎng)絡聊天在當今己經(jīng)不算什么新鮮事物,但大多數(shù)網(wǎng)絡聊天都需要借助于internet的 服務器,這就給那些具有大規(guī)模內(nèi)部網(wǎng)絡的用戶造成了不便,岀于安全等的考慮,通常這 些內(nèi)部網(wǎng)絡不能直接連接到internet ±o我設計的聊天室,提供了類似于常見聊天室的功 能,更重要的是可以在局域網(wǎng)內(nèi)部使用,只需要稍加改進,便可以應用于架設企業(yè)內(nèi)部的 聊天室,方便員工之間的溝通。本聊天室系統(tǒng)主耍討論了 windows環(huán)境下的局域網(wǎng)聊天程序的設計思路和設計方法, 運用java語言編程,其屮網(wǎng)絡通信

5、部分采用流行的tcp/ip協(xié)議,程序采用典型的c/s (客 戶端/服務器)架構。用socket編程設計網(wǎng)絡通信。本文最終設計了一個簡易的聊天軟件, 包括注冊、登錄、添加好友、刪除好友、消息收/發(fā)等功能。第1章java的網(wǎng)絡功能與編程1.1 java的網(wǎng)絡功能與編程1. 1. 1 java 概述java是一個由sun公司開發(fā)而成的新一代編程語言。使用它可在各式各樣不同種機 器、不同種操作平臺的網(wǎng)絡環(huán)境屮開發(fā)軟件。不論你使用的是哪一種www瀏覽器,哪 一種計算機,哪-種操作系統(tǒng),只要www瀏覽器上面注明了 “支持java",你就可以 看到生動的主頁。java正在逐步成為internet應

6、用的主要開發(fā)語言。java雖出現(xiàn)的時間不長,但己被業(yè)界接受,ibm、apple. dec、adobe、silicon graphicshp、oracle> toshiba nets cap和 microsoft 等大公司已經(jīng)購買了 java 的 許可證。microsoft還在其web瀏覽器explorer3.0版屮增加了對java的支持。另外,眾多的軟件開發(fā)商也開發(fā)了許多支持java的軟件產(chǎn)品。女口: borland公司的 基于java的快速應用程序開發(fā)環(huán)境latte; metrowerks公司和natural intelligence公司 分別開發(fā)的基于macintosh的java開發(fā)

7、工具;sun公司的java iff發(fā)環(huán)境java workshop; microsoft也開發(fā)出系列java產(chǎn)品等。internet正在成為企業(yè)信息系統(tǒng)最佳的解決方案。它的優(yōu)點表現(xiàn)在:便宜、易于使用 和管理。用戶不管使用何種類型的機器和操作系統(tǒng),界面是統(tǒng)一的web瀏覽器,而數(shù)據(jù) 庫、web頁面、應用程序(用java編的applet)則存在www服務器上。開發(fā)人員只 需維護一個軟件版本,管理人員省去了為用戶安裝、升級、培訓之苦,用戶則只需一個操 作系統(tǒng),一個internet瀏覽器足矣。隨著internet的崛起、java的誕生,巨型的、臃腫的應用軟件開始向小型化發(fā)展, 由眾多“生活”在inter

8、net ±的小應用程序(applet)相互協(xié)作完成信息的處理與傳遞。 java會加速應用軟件的小型化、網(wǎng)絡化的趨勢。隨著internet的發(fā)展,軟件必然是面向 “大眾”,而不是“少數(shù)人”的箸侈品,薄利多銷將是網(wǎng)絡應用軟件的重耍特點。java 連同internet. www正在改變應用軟件的開發(fā)和使用方式,一切都要圍繞著網(wǎng)絡,圍繞 著平臺無關。1. 1. 2 java的特點(-)java的主要特點java語言有下而一些特點:簡單、而向?qū)﹀琛⒎植际?、解釋?zhí)行、魯棒、安全、體 系結(jié)構中立、可移植、高性能、多線程以及動態(tài)性。1簡單性java語言是一種面向?qū)ο蟮恼Z言,它通過提供最基木的方法來完

9、成指定的任務,只 需理解一些基本的概念,就可以用它編寫出適合于各種情況的應用程序。java略去了運算 符重載、多重繼承等模糊的概念,且通過實現(xiàn)口動垃圾收集大大簡化了程序設計者的內(nèi)存 管理工作。另外,java也適合于在小型機上運行,它的基本解釋器及類的支持只有40kb 左右,加上標準類庫和線程的支持也只有215kb左右。庫和線程的支持也只有215kb 左右。2血向?qū)ο骿ava語言的設計集中于對象及其接口,它提供了簡單的類機制以及動態(tài)的接口模型。 對象屮封裝了它的狀態(tài)變量以及相應的方法,實現(xiàn)了模塊化和信息隱藏;而類則提供了一 類對象的原型,并且通過繼承機制,子類可以使用父類所捉供的方法,實現(xiàn)了代碼

10、的復用。3. 分布性java是面向網(wǎng)絡的語言。通過它提供的類庫可以處理tcp/ip協(xié)議,用戶可以通過 url地址在網(wǎng)絡上很方便地訪問其它對象。4詹棒性java在編譯和運行程序時,都要對可能出現(xiàn)的問題進行檢杳,以消除錯誤的產(chǎn)生。 它提供口動垃圾收集來進行內(nèi)存管理,防止程序員在管理內(nèi)存時容易產(chǎn)生的錯誤。通過集 成的面向?qū)ο蟮睦馓幚頇C制,在編譯時,java提示出可能出現(xiàn)但未被處理的例外,幫 助程序員正確地進行選擇以防止系統(tǒng)的崩潰。另外,java在編譯時還可捕獲類型聲明中 的許多常見錯誤,防止動態(tài)運行時不匹配問題的出現(xiàn)。5 安全性用于網(wǎng)絡、分布環(huán)境下的java必須要防止病毒的入侵。java不支持指針

11、,一切對 內(nèi)存的訪問都必須通過對象的實例變量來實現(xiàn),這樣就防止程序員使用“特洛伊”木馬 等欺騙手段訪問對象的私有成員,同時也避免了指針操作中容易產(chǎn)生的錯誤。6體系結(jié)構中立java解釋器生成與體系結(jié)構無關的字節(jié)碼指令,只要安裝了 java運行時系統(tǒng),java 程序就可在任意的處理器上運行。這些字節(jié)碼指令對應于java虛擬機中的表示,java 解釋器得到字節(jié)碼厲,對它進行轉(zhuǎn)換,使之能夠在不同的平臺上運行。7. 可移植性與平臺無關的特性使java程序可以方便地被移植到網(wǎng)絡上的不同機器。同時,java 的類庫中也實現(xiàn)了與不同平臺的接口,使這些類庫可以移植。另外,java編譯器是由java 語言實現(xiàn)的,

12、java運行時系統(tǒng)由標準c實現(xiàn),這使得java系統(tǒng)本身也具有可移植性。8. 解釋執(zhí)行java解釋器直接對java字節(jié)碼進行解釋執(zhí)行。字節(jié)碼本身攜帶了許多編譯時信息, 使得連接過程更加簡單。9高性能和其它解釋執(zhí)行的語言(如basic)不同,java字節(jié)碼的設計使之能很容易地直接 轉(zhuǎn)換成對應于特定cpu的機器碼,從而得到較高的性能。10.多線程多線程機制使應用程序能夠并行執(zhí)行,而且同步機制保證了對共享數(shù)據(jù)的正確操作。 通過使用多線程,程序設計者可以分別用不同的線程完成特定的行為,而不需耍采用全局 的事件循環(huán)機制,這樣就很容易地實現(xiàn)網(wǎng)絡上的實時交互行為。門動態(tài)性java的設計使它適合于一個不斷發(fā)展的

13、環(huán)境。在類庫中可以口由地加入新的方法和 實例變量而不會影響用戶程序的執(zhí)行。并ji. java通過接口來支持多重繼承,使之比嚴格 的類繼承具有更靈活的方式和擴展性。(-)java提供了豐富的類庫以滿足網(wǎng)絡化、多線程、面向?qū)ο笙到y(tǒng)的需要。1語言包提供的支持包括字符串處理、多線程處理、例外處理、數(shù)學函數(shù)處理等,可 以用它簡單地實現(xiàn)j ava程序的運行平臺。2實用程序包提供的支持包括哈希表、堆棧、可變數(shù)組、時間和h期等。3輸入輸出包用統(tǒng)一的”流”模型來實現(xiàn)所有格式的i/o,包括文件系統(tǒng)、網(wǎng)絡、輸入。4. 低級網(wǎng)絡包用于實現(xiàn)socket編程。5抽象圖形用戶接口包實現(xiàn)了不同平臺的計算機的圖形用戶接口部件,

14、包括窗口、 菜單、滾動條、對話框等,使得java可以移植到不同平臺的機器。6網(wǎng)絡包支持internet的tcp/ip協(xié)議,提供了與internet的接口。它支持url連接, www的即時訪問,并且簡化了用戶/服務器模型的程序設計。(三)java和c、c+對于變量聲明、參數(shù)傳遞、操作符、流控制等,java使用了 和c、c+相同的傳統(tǒng),使得熟悉c、c+的程序員能很方便地進行編程。同時,java 為了實現(xiàn)其簡單、魯棒、安全等特性,也摒棄了 c和c+中許多不合理的內(nèi)容。1 全局變量java程序中,不能在所有類之外定義全局變量,只能通過在一個類中定義公用、靜 態(tài)的變量來實現(xiàn)一個全局變量。例如:class

15、globalvarf public static global_var;在類globalvar中定義變量global_var為public static,使得其它類可以訪問和修改 該變量。java對全局變量進行了更好的封裝。而在c和c+中,依賴于不加封裝的全局 變量常常造成系統(tǒng)的崩潰。2. gotojava不支持c、c+中的goto語句,而是通過例外處理語句try、catch> final等來 代替c、c+中用goto來處理遇到錯誤時跳轉(zhuǎn)的情況,使程序更可讀且更結(jié)構化。3 指針指針是c、c+中最靈活,也是最容易產(chǎn)生錯誤的數(shù)據(jù)類型。由指針所進行的內(nèi)存地 址操作常會造成不可預知的錯誤,同時通

16、過指針對某個內(nèi)存地址進行顯式類型轉(zhuǎn)換后,可 以訪問一個c+中的私有成員,從而破壞安全性,造成系統(tǒng)的崩潰。而java對指針進行 完全的控制,程序員不能直接進行任何指針操作,例如把整數(shù)轉(zhuǎn)化為指針,或者通過指針 軽放某一內(nèi)存地址等。同時,數(shù)組作為類在java中實現(xiàn),良好地解決了數(shù)組訪問越界這 一 c、c+屮不作檢查的錯誤。4. 內(nèi)存管理在c中,程序員通過庫兩數(shù)malloc()和free()來分配和釋放內(nèi)存,c+中則通過運 算符new和delete來分配和釋放內(nèi)存。再次釋放已釋放的內(nèi)存塊或未被分配的內(nèi)存塊會 造成系統(tǒng)的崩潰;同樣,忘記釋放不再使用的內(nèi)存塊也會逐漸耗盡系統(tǒng)資源。而在java 中,所有的數(shù)

17、據(jù)結(jié)構都是對象,通過運算符new為它們分配內(nèi)存堆。通過new得到對象 的處理權,而實際分配給對象的內(nèi)存可能隨程序運行而改變,java對此自動地進行管理 并且進行垃圾收集,有效防止了由于程序員的誤操作而導致的錯誤,并且更好地利用了系 統(tǒng)資源。5. 數(shù)據(jù)類型的支持在c、c+中,對于不同的平臺,編譯器對于簡單數(shù)據(jù)類型如int. float等分別分配 不同長度的字節(jié)數(shù),例如:int在ibmpc中為16位,在vax-11中為32位,這導致了 代碼的不可移植性,但在java中,對于這些數(shù)據(jù)類型總是分配固定長度的位數(shù),如對int 型,它總占32位,這就保證了 java的平臺無關性。6. 類型轉(zhuǎn)換在c、c+屮

18、,可以通過指針進行任意的類型轉(zhuǎn)換,常常帶來不安全性,而java屮, 運行時系統(tǒng)對對象的處理要進行類型相容性檢查,以防止不安全的轉(zhuǎn)換。7 頭文件c、c+中用頭文件來聲明類的原型以及全局變量、庫函數(shù)等,在大的系統(tǒng)中,維護 這些頭文件是很困難的。而java不支持頭文件,類成員的類型和訪問權限都封裝在一個 類中,運行時系統(tǒng)對訪問進行控制,防止對私有成員的操作。同時,java中用import語 句來與其它類進行通訊,以便使用它們的方法。8 結(jié)構和聯(lián)合c、c+中的結(jié)構和聯(lián)合中所有成員均為公有,這就帶來了安全性問題。java中不 包含結(jié)構和聯(lián)合,所有的內(nèi)容都封裝在類中。9. 預處理c、c+屮用宏定義來實現(xiàn)的

19、代碼給程序的可讀性帶來了困難。在java屮不支持宏, 它通過關鍵字final來聲明一個常量,以實現(xiàn)宏定義中廣泛使用的常量定義。1.1.3 java語言的應用前景java語言有著廣泛的應用前景,大體上可以從以卜幾個方面來考慮其應用:1所有而向?qū)ο蟮膽瞄_發(fā),包括面向?qū)ο蟮氖录枋?、處理、綜合等;2計算過程的可視化、可操作化的軟件的開發(fā);3動態(tài)畫面的設計,包括圖形圖像的調(diào)用;4交互操作的設計(選擇交互、定向交互、控制流程等);5 internet的系統(tǒng)管理功能模塊的設計,包括web頁而的動態(tài)設計、管理和交互操 作設計等;6 internet (企業(yè)內(nèi)部網(wǎng))上的軟件開發(fā)(直接面向企業(yè)內(nèi)部用戶的軟件)

20、;7與各類數(shù)據(jù)庫連接查詢的sql語句實現(xiàn);8其他應用類型的程序。1.2 ip/tcp協(xié)議常識(1) ip、tcp協(xié)議的特點:tcp/ip (transmission control protocol/lnternet protocol)是傳輸控制協(xié)議/網(wǎng)際協(xié)議 的縮寫,tcp/ip是當今網(wǎng)絡互聯(lián)的核心協(xié)議。tcp/ip協(xié)議的體系結(jié)構共有四個層次,即 應用層、傳輸層、網(wǎng)絡互聯(lián)層和網(wǎng)絡接口層。ip協(xié)議的作hl第一,它是網(wǎng)絡層的協(xié)議,提供互聯(lián)網(wǎng)上數(shù)據(jù)傳輸?shù)慕y(tǒng)一格式。第 二,提供不可靠的無連接的服務。第三,定義了互聯(lián)網(wǎng)上的傳輸數(shù)據(jù)的基本單元,提供了 供路由選擇的信息,沒有差錯校驗和處理的機制。tcp協(xié)

21、議的功能:差錯控制可靠性、面向連接、分段(segment)、端口號。 tcp是傳輸控制i辦議,是而向連接的提供了一種可靠的傳輸服務,它用三次握手和滑動 窗口機制來保證傳輸?shù)目煽啃裕斑M行流量控制。tcp/ip協(xié)議具有以下特點:1、協(xié)議標準具有開放性,其獨立于特定的計算機硬件及操作系統(tǒng),可以免費使用。2、統(tǒng)一分配網(wǎng)絡地址,使得侮個tcp/ip設備在網(wǎng)絡中都具有唯一的ip地址。3、實現(xiàn)了高層協(xié)議的標準化,能為用戶提供多種可靠的服務。(2) tcp/tp協(xié)議進行傳輸數(shù)據(jù)傳輸?shù)倪^程:應用程序為了傳輸數(shù)據(jù)會調(diào)用tcp,將數(shù)據(jù)和對應的參數(shù)傳給tcp,將tcp數(shù)據(jù)包 封裝在ip包內(nèi),通過網(wǎng)絡送給目的tcpo

22、接l|妨tcp在接收到數(shù)據(jù)后通知上層應用程序, tcp將保證接收數(shù)據(jù)的正確性。在實現(xiàn)tcp的主機上,tcp可以被看成是一個模塊,和 文件系統(tǒng)區(qū)別不大,tcp也可以調(diào)用一些操作系統(tǒng)的功能,tcp不直接和網(wǎng)絡打交道, 控制網(wǎng)絡的任務由專門的設備驅(qū)動模塊完成。tcp只是調(diào)用ip接口,向tcp提供所有 tcp需要的服務。(3) 端口號:有的時候,一個ip地址不能完整的標識一臺服務器,這是因為一臺物理性的計算機 同時運行著多個應用程序,這就需要我們來區(qū)別同一臺機了上的不同服務,所以就在傳輸 層和應用層上設置接口,就是端口。端口實際是一個16位長的地址,范圍是065535 之間,其中01023是熟知端口,

23、主要是給提供服務的應用程序使用,這些端口是所有應 用進程都知道的,102465535為一般端口,也稱動態(tài)端口、連接端口,用來隨時分配耍 求通信的客戶端應用程序。在數(shù)據(jù)傳輸過程中,各種服務器一邊不斷的檢測分配給它的端 口,一邊發(fā)現(xiàn)要求和它通信的客戶端。第2章規(guī)劃設計2. 1課題來源根據(jù)當前網(wǎng)絡的需求,網(wǎng)絡聊天越來越受各種網(wǎng)民所青睞。因此開發(fā)網(wǎng)絡聊天是相當 有必耍,而且在網(wǎng)站內(nèi)增加聊天功能,它不僅可以提高網(wǎng)站的訪問量,同時可以留著訪客, 更重要的是讓訪客透過聊天室實時的互相交流。而木人也學習過java語言,對網(wǎng)絡編程 也較有興趣,為了更好的考驗自己對java語言的掌握程度,木人就決定以局域網(wǎng)聊天

24、室的設計與實現(xiàn)為畢業(yè)設計,希望通過這一次的設計能進一步提高本人的網(wǎng)絡編程的能 力。2. 2需求分析聊天系統(tǒng)不外乎兩個方面,服務器端和客戶端。簡單分析一下兩個方面所要完成的任 務,對設計這個程序來說,等于完成了一半。首先來看一下服務器端的任務:1. 服務器端應當建立一個serversocket,并月不斷進行偵聽是否有客戶端連接或者 斷開連接(包括判斷沒有響應的連接超時)o2服務器端應當是一個信息發(fā)送中心,所有客戶端的信息都傳到服務器端,曲服務器 端根據(jù)要求分發(fā)信息。以上就是服務器端最主要的兩個任務。不難看出,服務器端的任務并不復雜。客戶端應該完成的工作包括:1 與服務器端建立通信通道,向服務器端

25、發(fā)送信息。2. 接收來口服務器的信息。相對服務器而言,客戶端的任務更加簡單,有了以上的簡單分析,可以知道,解決上 述四個問題,即完成了該聊天系統(tǒng)的核心。以下為服務器端和客戶端的界面:(圖2-1)服務器(圖2-2)客戶端2. 3研究價值第3章系統(tǒng)分析與設計方案3. 1聊天系統(tǒng)的總體設計要點聊天系統(tǒng)的設計跟普通網(wǎng)站設計有著許多不同的地方,普通網(wǎng)站設計所考慮的因素, 例如,普通網(wǎng)站需要對布局進入大量美化以及動畫設計等等,而聊犬室只要提供滿足訪客 雙方直接實時聊天即可。因此,在設計聊天系統(tǒng)的過程屮,必須要考慮好以下兒個設計要 占八、1. 實現(xiàn)思想在internet上的聊天程序一般都是以服務器提供服務端連接響應,使用者通過客戶端 程序登錄到服務器,就可以與登錄在同一服務器上的用戶交談,這是一個面向連接的通信 過程。因此,程序要在tcp/ip環(huán)境下,實現(xiàn)服務器端和客戶端兩部分程序。2. 服務器端工作流程服務器端通過socket()系統(tǒng)調(diào)用創(chuàng)建一個socket數(shù)組后(即設定了接受連接客戶的最 大數(shù)目),與指定的本地端口綁定bind(),就可以在端口進行偵聽listen()o如杲有客戶端 連

溫馨提示

  • 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

提交評論