2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩56頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  編號 </p><p>  畢 業(yè) 設 計(論文)</p><p>  題目 基于TCP/IP協(xié)議的聊天工具的 </p><p>  設計與開發(fā) </p><p>  二級學院 計算機科學與工程 </p><p>  專

2、業(yè) 計算機科學與技術 </p><p>  班 級 10903XXXX </p><p>  學生姓名 學號 10903XXXXXX</p><p>  指導教師 職稱 </p><p>  時 間 2013.6

3、 </p><p>  目錄 </p><p><b>  摘 要I</b></p><p>  ABSTRACTII</p><p><b>  前 言- 1 -</b></p><p>  第一章 概述- 2 -</p>

4、;<p>  1.1 課題背景及意義- 2 -</p><p>  1.1.1 課題背景- 2 -</p><p>  1.1.2 課題意義- 3 -</p><p>  1.2 課題現(xiàn)狀及發(fā)展- 3 -</p><p>  1.2.1 課題現(xiàn)狀- 3 -</p><p>  1.2.2 課題發(fā)

5、展- 4 -</p><p>  1.3 課題內(nèi)容、目的及目標- 4 -</p><p>  1.3.1 課題內(nèi)容- 4 -</p><p>  1.3.2 課題目的和目標- 4 -</p><p>  第二章 開發(fā)技術和平臺- 6 -</p><p>  2.1 開發(fā)技術- 6 -</p>

6、<p>  2.1.1 Java語言- 6 -</p><p>  2.1.1.1 Java發(fā)展歷程- 6 -</p><p>  2.1 1.2 Java特點- 6 -</p><p>  2.1.1.3 Java與Internet- 7 -</p><p>  2.1.2多線程- 8 -</p><

7、p>  2.1.3 TCP/UDP協(xié)議- 8 -</p><p>  2.1.4 C/S模式- 10 -</p><p>  2.1.5 Socket- 11 -</p><p>  2.2 開發(fā)平臺- 11 -</p><p>  2.2.1 硬件環(huán)境- 11 -</p><p>  2.2.2 軟件

8、環(huán)境- 11 -</p><p>  2.2.2.1 Eclipse- 11 -</p><p>  2.2.2.2 JDK1.6- 12 -</p><p>  2.2.2.3 SQL Server 2005和JDBC- 12 -</p><p>  2.2.2.4 AWT組件- 12 -</p><p

9、>  第三章 系統(tǒng)分析與設計- 13 -</p><p>  3.1 系統(tǒng)分析- 13 -</p><p>  3.1.1 系統(tǒng)可行性分析- 13 -</p><p>  3.1.2 系統(tǒng)功能需求- 13 -</p><p>  3.1.3 系統(tǒng)實現(xiàn)原理- 14 -</p><p>  3.1.4 各個

10、模塊功能詳解- 15 -</p><p>  3.1.4.1 服務器端結構- 15 -</p><p>  3.1.4.2 客戶端結構- 16 -</p><p>  3.2 系統(tǒng)設計- 17 -</p><p>  3.2.1 設計原則- 17 -</p><p>  3.2.2 架構設計- 17 -&l

11、t;/p><p>  3.2.3 功能設計- 18 -</p><p>  3.2.4 數(shù)據(jù)庫設計- 18 -</p><p>  第四章 系統(tǒng)的實現(xiàn)- 19 -</p><p>  4.1 服務器的設計與實現(xiàn)- 19 -</p><p>  4.1.1 服務器工作流程圖- 19 -</p><

12、;p>  4.1.2 服務器主界面- 19 -</p><p>  4.1.3 服務器的開啟- 21 -</p><p>  4.1.4 服務器的關閉- 21 -</p><p>  4.1.5 服務器管理用戶- 21 -</p><p>  4.2 客戶端的設計與實現(xiàn)- 27 -</p><p>  

13、4.2.1 客戶端工作流程圖- 27 -</p><p>  4.2.2 客戶端登陸主界面- 27 -</p><p>  4.2.3 客戶端注冊主界面- 28 -</p><p>  4.2.4 客戶端聊天主界面- 32 -</p><p>  4.2.5 客戶端之間聊天- 33 -</p><p>  4

14、.2.6 用戶下線- 37 -</p><p>  4.3 系統(tǒng)功能特點及改進- 38 -</p><p>  第五章 結論- 40 -</p><p>  致 謝- 41 -</p><p>  參考文獻- 42 -</p><p>  文獻綜述- 44 -</p><p><

15、;b>  摘 要</b></p><p>  隨著時代的進步,互聯(lián)網(wǎng)日益變得普及和大眾化。當今社會,互聯(lián)網(wǎng)幾乎覆蓋了所有行業(yè),由此可見,其在我們的日常生活中所占的地位是顯而易見的。而網(wǎng)絡能帶給我們的是什么呢?當然是時效性。通過網(wǎng)絡,我們可以很輕松的和地球那端的人取得聯(lián)系。而這個“聯(lián)系方式”又有很多種了,比如郵件、文字會話、語音會話、視屏會話等。</p><p>  眾所周

16、知的QQ,擁有上億的注冊用戶,在國內(nèi)即時通訊領域占據(jù)了第一的位置,因為其具有強大的功能,可以實現(xiàn)文字通訊、語音通訊甚至即時的視屏通訊。除此之外,還有諸如微軟的MSN、網(wǎng)易的POPO,新浪UC等等。本次畢業(yè)設計的內(nèi)容是基于Java的一款局域網(wǎng)即時通信軟件。</p><p>  Java是一種跨平臺的編程語言,其具有的良好的網(wǎng)絡功能以及對數(shù)據(jù)庫的全面支持毫無疑問能實現(xiàn)本次設計的所有內(nèi)容。本系統(tǒng)采用C/S模式,即客戶端

17、/服務器模式,客戶端與服務器通過Socket傳遞數(shù)據(jù),服務器采用多線程技術。利用Eclipse進行開發(fā)。</p><p>  該軟件完成后的主要功能有:點對點、點對多、多對多的聊天,服務器對聊天進行統(tǒng)一管理,比如用戶注冊,用戶登陸,踢出用戶等。 </p><p>  關鍵字:Java,Socket,多線程,TCP/UDP,C/S</p><p><b>

18、;  ABSTRACT</b></p><p>  With the progress of era, the Internet become increasingly popularization and popularization. In today's society, the Internet covers almost all industries, thus it can be

19、seen, it in our daily life of the position is obvious. What is the Internet can bring us? Of course is timeliness. Through the network, we can easily and that the connection to the side of earth. The "contact"

20、and there are many kinds, such as email, voice, video, text session , etc.</p><p>  Known as QQ, with hundreds of millions of registered users, occupy the first position in the field of domestic instant comm

21、unication, because it has strong function, can achieve text communication, voice communication, even real-time video communications. Besides, there are such as Microsoft's MSN POPO, netease, sina UC, and so on. The c

22、ontent of this graduation design is a LAN instant communication software based on Java.</p><p>  Java is a cross-platform programming language, it has good network function and the full support from database

23、 there is no doubt that can realize all the content of this design. This system adopts C/S mode, the client/server mode, client and server transfer data through a Socket to the server using multithreading technology. Usi

24、ng Eclipse for development.</p><p>  After completion of the software of the main functions are: point to point and point to chat more, many-to-many, unified management was carried out on the chat server, su

25、ch as user registration, user login, kicked out users, etc.</p><p>  Keywords: Java, Socket, multithreading, TCP/UDP, C/S</p><p><b>  前 言</b></p><p>  當今人們每天依賴著的網(wǎng)絡,主要是給廣

26、大用戶提供了即時性的信息。網(wǎng)絡通信則是實現(xiàn)人與人之間交互性溝通最好的方式,我們可以通過網(wǎng)絡通信實現(xiàn)異地文字傳輸、語音通話甚至遠程視頻通話?,F(xiàn)在很多公司企業(yè)都進行遠程視頻會議。網(wǎng)絡通信無疑給當今的人們帶來了極大的便利。諸如騰訊QQ、微軟的MSN、網(wǎng)易的POPO,新浪UC等眾多出類拔萃的聊天系統(tǒng),給我們生活所帶來的時效性、便利性是有目共睹的。于是,本人懷著對網(wǎng)絡通信機制以及原理的極大興趣嘗試利用Java語言編寫一個微型的局域網(wǎng)聊天軟件,可以

27、供多人在一個局域網(wǎng)中同時進行聊天通信。</p><p>  本課題主要是基于Java這種跨平臺的編程語言,利用SQL Server 2005 數(shù)據(jù)庫進行編寫。通過JDBC將Java和數(shù)據(jù)庫連接起來,從而,我們可以用Java來操作數(shù)據(jù)庫。本課題內(nèi)容主要是應用數(shù)據(jù)庫來存儲用戶信息以及用戶聊天記錄,所以相對于其他大型的應用,操作起來比較簡單。</p><p>  本次畢業(yè)設計所設計的聊天系統(tǒng)應用

28、了C/S(客戶端/服務器)模式,這也是軟件開發(fā)中一種通用的開發(fā)模式。利用Socket進行通信,這也是該聊天系統(tǒng)的關鍵部分。利用Java中的多線程技術來實現(xiàn)分工明確的操作。最后實現(xiàn)局域網(wǎng)即時通訊功能。</p><p><b>  第一章 概述</b></p><p>  1.1 課題背景及意義</p><p>  1.1.1 課題背景</p

29、><p>  當今處于一個信息爆炸的時代,隨著Internet的迅速普及和發(fā)展,人們之間的溝通和交流變得越來越頻繁,以至于到了人們每天的日常生活都離不開這個具有高效時效性的網(wǎng)絡。人們可以通過各種軟件建立即時性的聯(lián)系,比如人們通常用的Email,QQ,MSN等等。而QQ則是國內(nèi)人盡皆知的即時性通訊軟件,自從1998年騰訊成立以來,QQ的發(fā)展幾乎是飛躍式的。據(jù)2013年5月13日騰訊官方公布顯示,目前注冊用戶中的活躍用戶

30、達到了7.519億的水平,最高同時在線人數(shù)高達1.674億,這無疑是一個驚人的數(shù)據(jù)。鑒于即時通訊軟件在當今人們生活中的重要地位,以及本人懷著的對即時通訊軟件的通信機制以及其工作原理的好奇,嘗試用Java語言編寫一款局域網(wǎng)即時通信軟件,以此來實踐性的研究通信軟件的工作流程。</p><p>  本人通過網(wǎng)絡渠道大概了解了QQ的基本通信原理。大概了解到了QQ是以多個服務器提供服務,服務器管理客戶端,客戶端之間UDP通

31、信,除非不得已的情況下,服務器才通過TCP轉發(fā)消息。其具體工作方式經(jīng)過本人理解畫出如下1-1示意圖,</p><p>  圖 1-1 騰訊QQ工作模式示意圖</p><p>  而提到大家也非常熟悉的MSN,通過網(wǎng)絡了解到,它是另一種工作模式,純TCP通信,而不像騰訊QQ一樣TCP和UDP并用,其工作模式如下圖1-2所示,</p><p>  圖1-2 MSN通信

32、模式示意圖</p><p>  我們會看出,MSN這種通信其實就是TCP通信,而TCP通信就是通過服務器轉發(fā)消息來實現(xiàn)客戶端之間通信的,當客戶端1要和客戶端2取得聯(lián)系時,必須通過中間服務器1或者2來實現(xiàn)信息的轉發(fā),而服務器在這里的角色其實就是一個中轉站了。這很像我們的電話網(wǎng)絡,中轉通信模式。</p><p>  1.1.2 課題意義</p><p>  研究本課題的

33、主要目的在于了解當前通訊軟件的通信模式,并試著開發(fā)一個能夠?qū)崿F(xiàn)局域網(wǎng)通信的局域網(wǎng)即時通信軟件,通過這個過程,讓自己更加了解在Java下,實現(xiàn)通信的具體原理和工作流程。</p><p>  本系統(tǒng)應用了基于Socket局域網(wǎng)通信模式,它為我們提供了一種良好的、安全的通信機制,而且這個在實踐中更好的詮釋了Socket的通信的根本原理,具有很好的學習和研究價值,可以更深入地提高本人對于Socket通信機制的理解和認識。

34、</p><p>  基于Socket的局域網(wǎng)通信軟件在目前來說是相當廣泛的,不但滿足了傳統(tǒng)的通信需求,還可以擴展其應用范圍,以適應更多更大范圍的需求。所以其研究價值也是非??捎^的。</p><p>  1.2 課題現(xiàn)狀及發(fā)展</p><p>  1.2.1 課題現(xiàn)狀</p><p>  基于局域網(wǎng)的即時通訊工具,實際上是通訊領域中一個微縮版

35、本的通信軟件,廣域網(wǎng)的即時通訊工具采用TCP或者UDP或者TCP、UDP并用的方式來實現(xiàn)通訊。目前來說,開發(fā)技術是非常成熟的了,比如騰訊QQ,微軟MSN,新浪UC等,這些通訊工具都實現(xiàn)了廣域網(wǎng)的即時通訊,但他們卻也各具特色。比如單一TCP通信的MSN,在穩(wěn)定傳輸和安全性上是可圈可點的。而騰訊的QQ,在功能上則是非常全面的,因為其客戶端時間通訊采用UDP方式,所以通訊顯得非常的流暢和方便,也大大減輕了服務器的負荷。這些通訊軟件各具特色,實

36、現(xiàn)方面各有所長,但由于他們在商業(yè)運營階段,其實現(xiàn)的具體內(nèi)部機制,我們不得而知,但是無論他們是怎么實現(xiàn)的,最終也逃不過TCP/IP,UDP通訊的本質(zhì)。</p><p>  1.2.2 課題發(fā)展</p><p>  鑒于當前這種朝氣蓬勃的發(fā)展勢頭,在未來的即時通訊領域,不管是局域網(wǎng)還是廣域網(wǎng),必定會更加的精彩,或許在不久的將來,通訊模式會更加的發(fā)達和方便于人類社會。</p>&l

37、t;p>  1.3 課題內(nèi)容、目的及目標</p><p>  1.3.1 課題內(nèi)容</p><p>  本課題主要是用Java下的Socket研究局域網(wǎng)通信,并利用Socket編寫一個可以供多人通信的局域網(wǎng)聊天軟件,此聊天軟件分為服務器程序和客戶端程序兩個獨立的工程項目。他們各自負責相應的工作,從而實現(xiàn)局域網(wǎng)各個客戶端之間的相互通訊。</p><p>  1.

38、3.2 課題目的和目標</p><p>  本課題的目的旨在探究TCP/UDP通信的機制和原理,由于在大學期間并沒有對TCP/UDP通信進行系統(tǒng)的專業(yè)的學習,所以,對于TCP/UDP通信并沒有太多的了解,而當前的通信網(wǎng)絡的廣泛應用,又讓研究其內(nèi)在的運作模式和機制變得非常有意義的一件事情。目前來說,通信工具是非常的成熟了,本次畢業(yè)設計做的這個關于TCP/UDP通信的局域網(wǎng)聊天系統(tǒng)也不可能實現(xiàn)相應的經(jīng)濟價值,旨在本人

39、在大學的最后階段有一個更好的收獲,能夠?qū)W到到很多以前沒學過的新東西,吸取到更多的知識充實自己對于計算機這門學科認識和研究。</p><p>  本課題的最終目標是實現(xiàn)局域網(wǎng)的即時通訊,包括點對點、點對多、多對多的相互通訊,最后以一臺主機作為服務器,另外用不同的主機作為客戶端進行試驗驗證,能夠?qū)崿F(xiàn)相互間的文字通訊。</p><p>  第二章 開發(fā)技術和平臺</p><p

40、><b>  2.1 開發(fā)技術</b></p><p>  2.1.1 Java語言</p><p>  2.1.1.1 Java發(fā)展歷程</p><p>  Java的發(fā)展歷史,可以追朔到1990年。當時Sun Microsystems公司為了發(fā)展消費類電子產(chǎn)品進行了一個名為Green的項目計劃。這個計劃的負責任是James Gosli

41、ng。起初他用具有面向?qū)ο筇卣鞯腃++語言編寫嵌入式軟件,可以放在面包機或PDA(Personal Digital Assistant,個人數(shù)字助理)等小型電子產(chǎn)品里,以使設備變得更為“聰明”,更具備人工只能。但后來發(fā)現(xiàn)C++并不適合這類任務;因為C++常會使系統(tǒng)失效。尤其在內(nèi)存管理方面,C++采用直接地址訪問方式,需要程序員記錄并管理內(nèi)存資源。這造成程序員編程的極大負擔,并可能產(chǎn)生多個Bugs。面包機上的程序錯誤可能使面包機燒壞甚至爆

42、炸。</p><p>  為了解決此類問題,Gosling決定開發(fā)一種新的語言,并取名為Oak。它采用了大部分與C++類似的語法對可能具備危險性的功能加以改進,例如將內(nèi)存管理改為由語言自己進行管理,以減少程序員的負擔及可能發(fā)生的錯誤。Oak是一種可移置的語言,它是一種平臺獨立的語言,能夠在各種芯片上執(zhí)行,可以降低設備的研發(fā)成本。</p><p>  Java 技術具有卓越的通用性、高效性、

43、平臺移植性和安全性,廣泛應用于個人PC、數(shù)據(jù)中心、游戲控制臺、科學超級計算機、移動電話和互聯(lián)網(wǎng),同時擁有全球最大的開發(fā)者專業(yè)社群。在全球云計算和移動互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下,Java更具備了顯著優(yōu)勢和廣闊前景。</p><p>  2.1 1.2 Java特點</p><p>  Java是一種簡單、安全、容易適用、面向?qū)ο?、可移置、高性能、多線程的語言。 </p><p&g

44、t;<b>  1、簡單性</b></p><p>  Java語言簡單高效,基本Java系統(tǒng)(編譯器和解釋器)所占空間很少。由于Java最初是為了對家用電器進行集成控制而設計的,因而具備簡單明了的特征。</p><p><b>  2、面向?qū)ο?lt;/b></p><p>  面向?qū)ο蠹夹g是現(xiàn)代工業(yè)的一次革新,提高了軟件的模

45、塊化程度和復用率,縮短了軟件開發(fā)時間,降低了開發(fā)成本。在Java之前雖然已經(jīng)有面向?qū)ο蟮某绦蛟O計語言問世,但如C++這樣的開發(fā)語言并不是完全的面向?qū)ο?,而是面向過程和面向?qū)ο蟮幕旌象w。Java則是完全面向?qū)ο蟮某绦蛟O計語言。</p><p><b>  3、安全性</b></p><p>  Java是可以用在網(wǎng)絡及分布環(huán)境下的網(wǎng)絡程序設計語言。在網(wǎng)絡環(huán)境下,語言的安

46、全性變得更為重要。Java提供了許多安全機制來保證其網(wǎng)絡適用上的安全性。</p><p><b>  4、平臺獨立</b></p><p>  平臺獨立指程序不受操作平臺的限制,可以應用在各種平臺上。Java源程序經(jīng)過編譯后生成字節(jié)碼文件,而字節(jié)碼與具體的計算機無關。只要計算機安裝了能解釋執(zhí)行字節(jié)碼的Java虛擬機JVM,就可以執(zhí)行字節(jié)碼文件,從而實現(xiàn)Java的平臺獨

47、立性。</p><p><b>  5、多線程</b></p><p>  Java具備內(nèi)建的多線程功能,可以將一個程序的不同程序段設置為不同的線程,使各線程并發(fā)、獨立執(zhí)行,提高系統(tǒng)的運行效率。</p><p><b>  6、網(wǎng)絡功能</b></p><p>  Java能從全球網(wǎng)絡資源獲取所需信

48、息,如數(shù)據(jù)文件、影響文件、聲音文件等,并對所得信息進行處理,所以說Java是一種網(wǎng)絡語言。</p><p><b>  7、執(zhí)行效率</b></p><p>  Java的字節(jié)碼需要經(jīng)過Java虛擬機JVM解釋成機器碼才能執(zhí)行,所以速度上較慢。但是隨著JVM技術的進步,使得其執(zhí)行速度直逼C與C++。</p><p>  2.1.1.3 Java

49、與Internet</p><p>  Java語言取得成功的領域之一就是其他語言數(shù)頁代碼==Java一條語句。</p><p>  TCP/IP(傳輸控制協(xié)議/網(wǎng)間協(xié)議)是Internet的主要協(xié)議,定義了計算機和外設進行通信所使用的規(guī)則(應用層,傳輸層,網(wǎng)絡層,鏈路層),大多數(shù)基于Internet的應用程序被看作TCP/IP協(xié)議的上一層. 如 : ftp, http, smtp,tel

50、net等。 IP地址:TCP/IP網(wǎng)絡中的每臺計算機都有唯一的地址--IP地址。在Java中,有一個用來存儲Internet地址的類叫InetAddress。</p><p>  Java提供的網(wǎng)絡功能有三大類: URL, Socket, Datagram:</p><p>  1、URL是三大功能中最高級的一種,通過URL Java程序可以直接送出或讀入網(wǎng)絡上的數(shù)據(jù)。</p&g

51、t;<p>  2、Socket是傳統(tǒng)網(wǎng)絡程序最常用的方式,可以認為Socket形如其名插座之意,只要有插頭插上了就能夠傳道電流,而這個電流,我們就可以想象成Socket通信中的Stream(流)了。</p><p>  3、Datagram是更低級的網(wǎng)絡傳輸方式,它把數(shù)據(jù)目的地記錄在包中,并把數(shù)據(jù)分成若干塊記錄在固定大小的數(shù)據(jù)包中,然后直接放在網(wǎng)絡上傳遞到目的端,至于你到底傳送成功與否,這就沒它的

52、事了。</p><p><b>  2.1.2多線程</b></p><p>  進程是一個具體的應用程序,而線程是進程中的一個分支,它是為了單獨完成程序中的某一項或一組功能而存在的。那么,我們在一個程序中要實現(xiàn)的功能就可以劃分為多個線程來分別實現(xiàn),這大大降低了一個程序的復雜性,也提高了程序的處理效率。在本課題中引入多線程技術無疑顯得是非常必要的,那么通信過程中的許多

53、功能就可以用多個線程來實現(xiàn),從而做到分工明確,改善程序的執(zhí)行效率。</p><p>  2.1.3 TCP/UDP協(xié)議</p><p>  TCP (Transmission Control Protocol)和UDP(User Datagram Protocol)屬于傳輸層協(xié)議。其中TCP提供IP環(huán)境下的數(shù)據(jù)可靠傳輸,它提供的服務包括數(shù)據(jù)流傳送、可靠性、有效流控、全雙工操作和多路復用。通

54、過面向連接、端到端和可靠的數(shù)據(jù)包發(fā)送。通俗說,它是事先為所發(fā)送的數(shù)據(jù)開辟出連接好的通道,然后再進行數(shù)據(jù)發(fā)送;而UDP則不為IP提供可靠性、流控或差錯恢復功能。一般來說,TCP對應的是可靠性要求高的應用,而UDP對應的則是可靠性要求低、傳輸經(jīng)濟的應用。TCP支持的應用協(xié)議主要有:Telnet、FTP、SMTP等;UDP支持的應用層協(xié)議主要有:NFS(網(wǎng)絡文件系統(tǒng))、SNMP(簡單網(wǎng)絡管理協(xié)議)、DNS(主域名稱系統(tǒng))、TFTP(通用文件傳

55、輸協(xié)議)等。</p><p><b>  面向連接的TCP</b></p><p>  “面向連接”就是在正式通信前必須要與對方建立起連接。比如你給別人打電話,必須等線路接通了而且對方拿起話筒才能相互通話。</p><p>  TCP(Transmission Control Protocol,傳輸控制協(xié)議)是基于連接的協(xié)議,也就是說,在正式

56、收發(fā)數(shù)據(jù)前,必須和對方建立可靠的連接。一個TCP連接必須要經(jīng)過三次“握手”才能建立起來,其中的過程非常復雜。我們來看看這三次“握手”的簡單過程:主機A向主機B發(fā)出連接請求數(shù)據(jù)包:“我想給你發(fā)數(shù)據(jù),可以嗎?”,這是第一次“握手”;主機B向主機A發(fā)送同意連接和要求同步(同步就是兩臺主機一個在發(fā)送,一個在接收,協(xié)調(diào)工作)的數(shù)據(jù)包:“可以,你什么時候發(fā)?”,這是第二次“握手”;主機A再發(fā)出一個數(shù)據(jù)包確認主機B的要求同步:“我現(xiàn)在就發(fā),你接著吧!

57、”,這是第三次“握手”。三次“握手”的目的是使數(shù)據(jù)包的發(fā)送和接收同步,經(jīng)過三次“握手”之后,主機A才向主機B正式發(fā)送數(shù)據(jù)。以下是三次“握手”的概念圖2-1:</p><p>  圖2-1 三次“握手”協(xié)議概念圖</p><p>  TCP協(xié)議能為應用程序提供可靠的通信連接,使一臺計算機發(fā)出的字節(jié)流無差錯地發(fā)往網(wǎng)絡上的其他計算機,對可靠性要求高的數(shù)據(jù)通信系統(tǒng)往往使用TCP協(xié)議傳輸數(shù)據(jù)。<

58、;/p><p><b>  面向非連接的UDP</b></p><p>  “面向非連接”就是在正式通信前不必與對方先建立連接,不管對方狀態(tài)就直接發(fā)送。這與現(xiàn)在流行的手機短信非常相似:你在發(fā)短信的時候,只需要輸入對方手機號就OK了,至于對方能否收到,這就不是我們的事情了,一切都交給網(wǎng)絡處理。</p><p>  UDP(User Data Prot

59、ocol,用戶數(shù)據(jù)報協(xié)議)是與TCP相對應的協(xié)議。它是“面向非連接”的協(xié)議,它不會與對方建立連接,而是直接就把數(shù)據(jù)包發(fā)送過去!</p><p>  UDP適用于一次只傳送少量數(shù)據(jù)、對可靠性要求不高的應用環(huán)境。比如,我們經(jīng)常使用“ping”命令來測試兩臺主機之間TCP/IP通信是否正常,其實“ping”命令的原理就是向?qū)Ψ街鳈C發(fā)送UDP數(shù)據(jù)包,然后對方主機確認收到數(shù)據(jù)包,如果數(shù)據(jù)包是否到達的消息及時反饋回來,那么網(wǎng)

60、絡就是通的。例如,在默認狀態(tài)下,一次“ping”操作發(fā)送4個數(shù)據(jù)包,發(fā)送的數(shù)據(jù)包數(shù)量是4包,收到的也是4包(因為對方主機收到后會發(fā)回一個確認收到的數(shù)據(jù)包)。這充分說明了UDP協(xié)議是面向非連接的協(xié)議,沒有建立連接的過程。正因為UDP協(xié)議沒有連接的過程,所以它的通信效率高。但也正因為如此,它的可靠性沒有TCP協(xié)議高。QQ就使用UDP發(fā)消息,因此有時會出現(xiàn)你發(fā)送了消息后,會出現(xiàn)發(fā)送消息失敗的結果。</p><p>  

61、2.1.4 C/S模式</p><p>  C/S模式是一種兩層結構的系統(tǒng),第一層在客戶機上安裝了客戶機應用程序,第二層在服務器上安裝服務器管理程序。在C/S模式的工作過程中,客戶機程序發(fā)出請求,服務器程序接收并且處理客戶機程序提出的請求,然后返回結果。</p><p>  C/S模式有以下特點:1、C/S模式將客戶端與服務分離,系統(tǒng)具有穩(wěn)定性和靈活性的特點。2、C/S模式配備的是

62、點對點的結構模式,適用于局域網(wǎng),有可靠的安全性。3、由于客戶端實現(xiàn)與服務器端的直接連接,沒有中間環(huán)節(jié),因此響應速度快。4、在C/S模式中,作為客戶機的計算機都要安裝客戶機程序,一旦軟件系統(tǒng)升級,每臺客戶機都要安裝客戶機程序,系統(tǒng)升級和維護較為復雜。</p><p>  2.1.5 Socket</p><p>  在網(wǎng)絡上的兩個程序通過一個雙向的通信連接實現(xiàn)數(shù)據(jù)的交換,這個雙向的

63、鏈路的一般稱為一個Socket。Socket通常用來實現(xiàn)客戶端和服務器的連接。Socket是TCP/IP協(xié)議的一個十分流行的編程方式,一個Socket通常由一個IP地址和一個端口號唯一確定。Socket所支持的協(xié)議不光有TCP/IP,還有UDP。在Java環(huán)境下,Socket編程主要是基于TCP/IP協(xié)議的網(wǎng)絡編程。也就是說在Java環(huán)境下,我們使用TCP/IP協(xié)議的網(wǎng)絡編程需要采用Socket機制。</p><p&

64、gt;<b>  2.2 開發(fā)平臺</b></p><p>  開發(fā)Java GUI程序需要一個系統(tǒng)的組件平臺,需要很多的組件協(xié)同工作才能開發(fā)出一個具有良好界面并具有局域網(wǎng)通信功能的聊天軟件。本次畢業(yè)設計所要用到的組件包括Eclipse平臺,JDK1.6解釋器,AWT組件庫,SQL Server 2005等。</p><p>  2.2.1 硬件環(huán)境</p&g

65、t;<p>  開發(fā)Java項目所要的硬件要求并不需要太高,達到以下要求即可:</p><p>  處理器:Intel Core2 Duo CPU或者更高</p><p>  內(nèi)存:1GB或者更高</p><p><b>  網(wǎng)絡:局域網(wǎng)</b></p><p>  2.2.2 軟件環(huán)境</p>

66、<p>  操作系統(tǒng):Windows XP或者其它可用操作系統(tǒng)</p><p>  開發(fā)平臺:Eclipse+AWT組件庫</p><p><b>  開發(fā)語言:Java</b></p><p>  數(shù)據(jù)庫:SQL Server 2005</p><p>  2.2.2.1 Eclipse</p&g

67、t;<p>  Eclipse 是一個開放源代碼的、基于 Java 的可擴展開發(fā)平臺。就其本身而言,它只是一個框架和一組服務,用于通過插件組件構建開發(fā)環(huán)境。Eclipse 還附帶了一個標準的插件集,包括 Java 開發(fā)工具(Java Development Tools,JDT)。</p><p>  2.2.2.2 JDK1.6</p><p>  JDK(Java Dev

68、elopment Kit)是Sun Microsystems針對Java開發(fā)員的產(chǎn)品。自從Java推出以來,JDK已經(jīng)成為使用最廣泛的Java SDK。JDK 是整個Java的核心,包括了Java運行環(huán)境、Java工具和Java基礎的類庫。</p><p>  2.2.2.3 SQL Server 2005和JDBC</p><p>  JDBC是一種用于執(zhí)行SQL語句的Java API

69、應用程序接口,可以為多種關系數(shù)據(jù)庫提供統(tǒng)一的訪問接口。JDBC由一組用Java語言編寫的類和接口組成,通過調(diào)用這些類和接口所提供的方法,用戶能夠以一致的方式連接多種不同的數(shù)據(jù)庫,從而可使用標準的SQL語言來存取數(shù)據(jù)庫中的數(shù)據(jù),不必再為每一種數(shù)據(jù)庫系統(tǒng)編寫不同的Java代碼。本次畢業(yè)應用了JDBC訪問SQL Server 2005 數(shù)據(jù)庫,以完成必要的功能和要求。</p><p>  2.2.2.4 AWT組件&

70、lt;/p><p>  AWT 是Abstract Window Toolkit (抽象窗口工具包)的縮寫,這個工具包提供了一套與本地圖形界面進行交互的接口。本次畢業(yè)設計中用Java提供的這個工具包對服務器和客戶端進行GUI開發(fā)。</p><p>  第三章 系統(tǒng)分析與設計</p><p><b>  3.1 系統(tǒng)分析</b></p>

71、<p>  3.1.1 系統(tǒng)可行性分析</p><p>  經(jīng)濟可行性:由于本系統(tǒng)的主要背景是畢業(yè)設計,不考慮到直接的經(jīng)濟效益和其后的商業(yè)發(fā)展,而只在于注重自身水平和能力的提高。所以,只要有一臺能運行Java軟件的電腦即可,而不用考慮到經(jīng)濟問題。</p><p>  技術可行性:本系統(tǒng)的開發(fā)是利用 SQL Server 2005作為本系統(tǒng)的后臺數(shù)據(jù)庫的,它是一個支持多用戶的新型

72、數(shù)據(jù)庫,適用于中小規(guī)模的數(shù)據(jù)量需求。使用Java作為系統(tǒng)開發(fā)的語言,它提供完善的控制語句、類與對象的支持及豐富的數(shù)據(jù)類型,給開發(fā)高性能系統(tǒng)提供了保障。</p><p>  運行可行性:本系統(tǒng)為一個小型的局域網(wǎng)聊天系統(tǒng),所耗費的資源比較少,只要安裝了運行該程序所必要的軟件后,就目前的電腦,都是能夠運行的。因此,本系統(tǒng)在運行上是完全可行的。</p><p>  綜上所述,本系統(tǒng)的設計與開發(fā)在經(jīng)

73、濟上、軟件上和硬件設備上的條件都是滿足的。因此可以得出結論,本系統(tǒng)的開發(fā)是可行的。</p><p>  3.1.2 系統(tǒng)功能需求</p><p>  既然該課題的可行性是已經(jīng)確定,那么我們就可以開始分析其具體的功能需求。聊天軟件無非就是要實現(xiàn)聊天的功能,那么其最根本的需求就是實現(xiàn)一個聊天的功能。本次畢業(yè)設計的聊天軟件所用到的是C/S模式,即需要一個服務器和一個客戶端項目,最后兩個項目完成通

74、信過程。具體的功能我用Visio圖演示出來,如圖3-1,</p><p>  圖3-1 局域網(wǎng)聊天系統(tǒng)功能示意圖</p><p>  3.1.3 系統(tǒng)實現(xiàn)原理</p><p>  聊天系統(tǒng)的設計跟一般網(wǎng)站的設計有著許多不同的地方,一般來說,網(wǎng)站設計所考慮的因素包括大量的界面美化以及動態(tài)效果等,而聊天室只要能提供實現(xiàn)用戶之間即時性的聊天通信即可,但也要做一定美化效果,

75、不然,當用戶一看著聊天軟件就沒了聊天的心情,那就太糟糕了。綜合以上因素,我對本次畢業(yè)設計所要做的的工作做了以下的總結:</p><p>  在Internet上的聊天程序一般都是以服務器提供服務端連接響應,使用者通過客戶端程序登錄到服務器,就可以與登錄在同一服務器上的用戶交談,這是一個面向連接的通信過程。因此,程序要在TCP/IP環(huán)境下,實現(xiàn)服務器端和客戶端兩部分程序。服務器與客戶端連接和傳遞數(shù)據(jù)具體實現(xiàn)的原理如

76、下圖3-2所示:</p><p>  圖3-2服務器與客戶端實現(xiàn)數(shù)據(jù)交互通信原理圖</p><p>  3.1.4 各個模塊功能詳解</p><p>  3.1.4.1 服務器端結構</p><p>  服務器的工作主要是負責對客戶端請求的不斷監(jiān)聽,它一直處于擁塞狀態(tài),直到有客戶端發(fā)出連接請求為止。當服務器接收到客戶端的登陸請求并驗證用戶名密

77、碼通過后,用戶成功進入聊天室,服務器又處于擁塞狀態(tài),也就是進入了對客戶端(發(fā)送信息,離線)的監(jiān)聽狀態(tài)。服務器功能具體的實現(xiàn)方式如下圖3-3所示,</p><p>  圖3-3 服務器工作模式圖示</p><p>  開啟服務器時會進入服務器控制主界面,上面標明了服務器的IP、端口號等重要信息,管理者可以點擊開啟按鈕啟動服務器。然后,服務器就開始工作了,服務器會一直處于擁塞狀態(tài),直到接收到S

78、ocket連接請求。然后服務器便會執(zhí)行相應線程里面相應的操作流程,比如用戶登陸、用戶注冊、用戶聊天信息轉發(fā)等等。</p><p>  3.1.4.2 客戶端結構</p><p>  客戶端分為登陸(Login),注冊(Register)和聊天主界面(ChatRoom)三大模塊,登陸主要是客戶端向服務器發(fā)出登陸用戶名和密碼,請求到服務器的連接。注冊是對用戶開放注冊功能,從而能讓注冊過的用戶進

79、入聊天室。聊天主界面就是我們的聊天室了,這里實現(xiàn)了局域網(wǎng)聊天的功能,包括點對點、點對多、多對多的聊天形式??蛻舳斯ぷ髂J饺缦聢D3-4所示,</p><p>  圖3-4 客戶端工作模式圖示</p><p>  首先我們會啟動客戶端,進入類似QQ登陸的登陸界面Login,上面有登陸用戶名和密碼輸入框和登陸按鈕,如果用戶輸入正確的用戶名和密碼就會直接進入ChatRoom,如果此時有其他在線用戶

80、,用戶就可以與他們進行即時聊天了。除了登陸,你還可以進行注冊,點擊注冊按鈕就會響應出Register界面,在你填寫完整了注冊信息后,點擊確定,服務器會查詢數(shù)據(jù)庫做出判斷并返回結果,如果服務器返回了注冊成功的信息,用戶便可以點擊返回進行以上登陸操作。</p><p><b>  3.2 系統(tǒng)設計</b></p><p>  3.2.1 設計原則</p>&

81、lt;p>  考慮到系統(tǒng)的可重用性和易維護性,需要將本系統(tǒng)的網(wǎng)絡底層通信和應用系統(tǒng)分開,做到結構分明、各功能模塊清晰。基于可重用的網(wǎng)絡通信底層,可以實現(xiàn)其他各種實時性較高的應用系統(tǒng)。本系統(tǒng)在架構設計上將分成3個層次,如下圖3-5所示,</p><p>  圖3-5 聊天系統(tǒng)設計層次模型圖</p><p>  本系統(tǒng)最底層的是Socket通信層,負責將客戶端與服務器之間連接起來,并建立

82、I/O通道,實現(xiàn)客戶端與服務器的數(shù)據(jù)傳輸。它通過接口層和最上面的應用層保持即時性的數(shù)據(jù)傳遞。用戶登陸聊天時,將實現(xiàn)統(tǒng)一的用戶登陸驗證機制。Socket底層設計分為兩大部分:協(xié)議設計和連接處理。協(xié)議設計就是規(guī)定服務器的IP和默認的端口號(PORT),服務器在該IP和端口號監(jiān)聽客戶端的連接請求。用多線程的技術處理客戶端的連接請求,一旦有客戶端發(fā)起連接請求,服務器便進入到與客戶端的連接線程中開始工作,直到完成所有操作。</p>

83、<p>  3.2.2 架構設計</p><p>  本系統(tǒng)中,服務器端設計兩個線程,一個用來處理客戶端連接請求的監(jiān)聽線程,一旦監(jiān)聽到Socket連接請求,服務器便進入Connection線程工作,處理客戶端相應請求的操作,比如登陸、注冊、發(fā)送消息、退出等操作。兩個線程之間分工明確一個負責監(jiān)聽請求,一個負責處理請求,多線程處理,分工明確。</p><p>  相應的客戶端的設計要

84、比服務器簡單,Login類負責實現(xiàn)登陸,Register類負責實現(xiàn)用戶注冊,ChatRoom類實現(xiàn)用戶的聊天功能,其中ChatRoom單獨用一個線程來處理其具體的操作。</p><p>  3.2.3 功能設計</p><p>  局域網(wǎng)聊天系統(tǒng)以局域網(wǎng)內(nèi)的用戶為實用對象,該聊天系統(tǒng)主要由服務器端和客戶端兩部分組成,其功能圖亦如圖3-1所示。</p><p>  3

85、.2.4 數(shù)據(jù)庫設計</p><p>  由于本局域網(wǎng)聊天系統(tǒng)主要是以提供聊天服務為主要目標,所以所設計的數(shù)據(jù)庫表只有簡單的兩張,一張用來存儲用戶信息,一張用來存儲用戶的聊天信息,如下圖3-5,3-6所示,</p><p>  圖3-5 用戶信息表</p><p>  用戶信息表主要包括了用戶名、密碼、年齡、性別、郵箱5個數(shù)據(jù),分別用來存儲用戶的用戶名、密碼、年齡、

86、性別、郵箱。</p><p>  圖3-6 用戶聊天信息表</p><p>  用戶聊天信息表主要用來存儲用戶的聊天信息,包括聊天信息的id號,聊天具體信息,聊天內(nèi)容的時間。</p><p><b>  第四章 系統(tǒng)的實現(xiàn)</b></p><p>  4.1 服務器的設計與實現(xiàn)</p><p> 

87、 4.1.1 服務器工作流程圖</p><p>  服務器的主要工作室配置服務器并且啟動服務器,服務器啟動后對用戶進行管理,包括在線用戶管理,踢出違規(guī)用戶,記錄用戶聊天信息等。其工作流程圖如下4-1所示,</p><p>  圖4-1 服務器工作流程</p><p>  4.1.2 服務器主界面</p><p>  服務器主要是實現(xiàn)服務器的啟

88、動,然后就開始監(jiān)聽客戶端的連接請求,處理客戶端的各種應用操作。其主界面如下圖4-2,4-3所示,</p><p>  圖4-2 服務器主界面</p><p>  圖4-3 服務器用戶管理主界面</p><p>  4.1.3 服務器的開啟</p><p>  點擊啟動服務器按鈕,便可以啟動服務器,服務器開始提供服務。如下圖4-4所示,<

89、/p><p>  圖4-4 服務器啟動后服務器管理主界面</p><p>  4.1.4 服務器的關閉</p><p>  點擊以上圖例所示“關閉服務器”按鈕,服務器便可退出服務。一旦服務器關閉了服務,那么客戶端會知道服務器已經(jīng)停止了服務,并且彈出“無法連接到服務器”的對話框,客戶端也會停止工作。</p><p>  4.1.5 服務器管理用戶&

90、lt;/p><p>  現(xiàn)在,有一個用戶上線了,服務器刷新在線用戶列表和在線用戶數(shù),同時更新服務器日志,如下圖4-5,4-6所示,</p><p>  圖4-5 有一個用戶上線了(服務器管理界面)</p><p>  圖4-6 有一個用戶上線了(用戶信息管理界面)</p><p>  現(xiàn)在,又有一個用戶上線了,服務器刷新在線用戶列表和在下人數(shù),同

91、時更新服務器日志,如下圖4-7,4-8所示,</p><p>  圖4-7 又一個用戶上線了(服務器管理界面)</p><p>  圖4-8 又一個用戶上線了(用戶信息管理界面)</p><p>  服務器監(jiān)聽客戶端,記錄客戶端聊天信息,如下圖4-9所示,</p><p>  圖4-9 服務器用戶信息管理界面</p><p

92、>  服務器向所有用戶發(fā)送系統(tǒng)消息,如圖4-10 組圖所示,</p><p>  圖4-10 服務器向所有用戶發(fā)送消息</p><p>  服務器踢出非法聊天用戶,如下圖 4-11組圖所示,</p><p>  圖4-11 服務器踢出非法聊天用戶</p><p>  現(xiàn)在,有一個用戶下線了,服務器刷新在線用戶列表和在線人數(shù),同時更新服務

93、器日志,如下圖4-12所示,</p><p>  圖4-12 有一個用戶下線了</p><p>  4.2 客戶端的設計與實現(xiàn)</p><p>  4.2.1 客戶端工作流程圖</p><p>  客戶端啟動會首先進入登陸(Login)界面,登陸界面上不但有登陸按鈕,還有注冊按鈕。如果輸入正確的用戶名和密碼,就會登錄到聊天室ChatRoom主

94、界面。而如果點擊注冊按鈕的話,就會直接跳到注冊界面,其工作流程圖下圖4-13所示,</p><p>  圖4-13 客戶端工作流程圖</p><p>  4.2.2 客戶端登陸主界面</p><p>  登陸客戶端首先進入的是登陸界面,如下圖4-14所示,</p><p>  圖4-14 用戶登陸界面</p><p>

95、  4.2.3 客戶端注冊主界面</p><p>  用戶點擊登陸主界面上的注冊按鈕,會自動跳轉到注冊主界面,如圖4-15所示,</p><p>  圖4-15 注冊主界面</p><p>  此時用戶可以進行賬號注冊,如下圖4-16組圖所示</p><p>  圖4-16 用戶注冊</p><p>  用戶注冊時,首

96、先經(jīng)過客戶端判定是否輸入為空,經(jīng)過客戶端的判斷后才會將注冊信息發(fā)往服務器,服務器判斷該用戶名是否已經(jīng)被注冊,然后返回成功或者失敗的結果。部分代碼如下,</p><p><b>  客戶端判斷:</b></p><p><b>  //用戶注冊</b></p><p>  @SuppressWarnings("de

97、precation")</p><p>  private void registNewUser() {</p><p>  // TODO Auto-generated method stub</p><p>  //從輸入框接收用戶注冊詳細信息并賦給封裝的注冊用戶信息類對象</p><p>  RegistUserInfo re

98、gistUserInfo = new RegistUserInfo();</p><p>  registUserInfo.userName = txtUserName.getText();</p><p>  registUserInfo.userPassword = txtUserPassword.getText();</p><p>  registUserI

99、nfo.age = txtAge.getText();</p><p>  registUserInfo.sex = rbtnMale.isSelected()?"男":"女";//默認選擇男,如果為真就選擇男,假就選擇女</p><p>  registUserInfo.email = txtEmail.getText();</p>

100、<p><b>  /**</b></p><p>  * 對得到的注冊用戶信息進行驗證</p><p><b>  */</b></p><p><b>  //用戶名有無驗證</b></p><p>  if(registUserInfo.userName.len

101、gth()==0){</p><p>  JOptionPane.showMessageDialog(null, "用戶名不能為空!");</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  //密碼有

102、無驗證</b></p><p>  if(registUserInfo.userPassword.length()==0){</p><p>  JOptionPane.showMessageDialog(null, "密碼不能為空!");</p><p><b>  return;</b></p>

103、<p><b>  }</b></p><p>  //兩次密碼輸入是否相同驗證</p><p>  if(!registUserInfo.userPassword.equals(txtPwdConfirm.getText())){</p><p>  JOptionPane.showConfirmDialog(null, &quo

104、t;兩次輸入密碼不一致!");</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  //年齡有無驗證</b></p><p>  if(registUserInfo.age.length()==0){

105、</p><p>  JOptionPane.showMessageDialog(null, "年齡不能為空 !");</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  /**</b>&l

106、t;/p><p>  * 輸入內(nèi)容合法性驗證</p><p><b>  */</b></p><p><b>  //年齡合法性驗證</b></p><p>  int age = Integer.parseInt(txtAge.getText());</p><p>  if

107、(age<=0||age>150){</p><p>  JOptionPane.showMessageDialog(null, "輸入年齡無效!");</p><p><b>  return;</b></p><p><b>  }</b></p><p><

108、;b>  //郵箱合法性驗證</b></p><p>  int flag = 0;</p><p>  for(int i = 0;i<txtEmail.getText().length();i++){</p><p>  if(txtEmail.getText().charAt(i)=='@'){</p>&

109、lt;p><b>  flag++;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(flag!=1){</p><p>  JOptionPane.showMessageDialog(null, &quo

110、t;電子郵箱格式不正確!請重新輸入!");</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  服務器判斷:</b></p><p><b>  /**</b></p>

111、;<p><b>  * 用戶注冊處理</b></p><p><b>  */</b></p><p>  private void userRegist() {</p><p>  // TODO Auto-generated method stub</p><p><b&g

112、t;  try {</b></p><p><b>  //用戶重名判斷</b></p><p>  RegistUserInfo regist = (RegistUserInfo) obj;</p><p>  String sql = "select * from userInfo where userName=

113、9;"+regist.userName+"'";</p><p>  SqlConn sq = new SqlConn();</p><p>  Statement st = sq.con.createStatement();</p><p>  ResultSet rs = st.executeQuery(sql);</

114、p><p>  boolean flag = false;</p><p>  while(rs.next()){</p><p>  flag = true;</p><p><b>  }</b></p><p>  if(flag==true){</p><p>  to

115、ClientStream.println("注冊名重復,請重新輸入!");</p><p><b>  return;</b></p><p><b>  }else{</b></p><p>  toClientStream.println(regist.userName+"注冊成功!&qu

116、ot;);//</p><p>  sql = "insert into userInfo(userName,userPwd,sex,age,email) "values( '"+regist.userName+"','"+regist.userPassword+"','"+regist.sex+&q

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論