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

下載本文檔

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

文檔簡介

1、<p><b>  畢業(yè)設(shè)計(jì)論文</b></p><p>  題 目 基于Socket協(xié)議遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)</p><p>  專 業(yè) 計(jì)算機(jī)網(wǎng)絡(luò)技術(shù) </p><p><b>  設(shè)計(jì)題目</b></p><p>  《基于Sock

2、et協(xié)議的遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)》</p><p>  設(shè)計(jì)內(nèi)容要求和技術(shù)參數(shù)</p><p>  遠(yuǎn)程監(jiān)控系統(tǒng)是通過通信網(wǎng)絡(luò)對遠(yuǎn)程設(shè)備實(shí)施監(jiān)控的軟件系統(tǒng)。該系統(tǒng)實(shí)現(xiàn)目標(biāo)主機(jī)中硬件設(shè)備的各種讀寫操作及數(shù)據(jù)傳輸。</p><p>  本系統(tǒng)設(shè)計(jì)包括以下四個(gè)項(xiàng)目:</p><p>  項(xiàng)目1 設(shè)計(jì)通信協(xié)議</p><p&

3、gt;  項(xiàng)目2 讀寫常見硬件設(shè)備</p><p>  項(xiàng)目3 用戶接口</p><p><b>  開發(fā)工具:</b></p><p>  Java SE SDK 1.6/Java MF 2.1.1E</p><p>  設(shè)計(jì)應(yīng)完成的技術(shù)資料</p><p>  本設(shè)計(jì)的最終產(chǎn)品是一個(gè)能

4、運(yùn)行的應(yīng)用程序,同時(shí)把設(shè)計(jì)的機(jī)制和過程總結(jié)形成規(guī)范的畢業(yè)論文。</p><p>  設(shè)計(jì)考核的主要知識與技能</p><p>  本系統(tǒng)的設(shè)計(jì)主要考核學(xué)生使用軟件開發(fā)工具進(jìn)行軟件開發(fā)的能力。具體有以下方面:</p><p>  軟件項(xiàng)目的規(guī)劃、邏輯設(shè)計(jì)能力;</p><p><b>  數(shù)據(jù)結(jié)構(gòu)的使用;</b></

5、p><p><b>  可視化編程;</b></p><p><b>  Socket編程;</b></p><p><b>  硬件編程;</b></p><p><b>  軟件編碼能力;</b></p><p>  軟件開發(fā)小組的

6、團(tuán)隊(duì)協(xié)作能力。</p><p>  設(shè)計(jì)時(shí)間: 2009 年 11 月 16 日 至 2010 年 1 月 8 日</p><p>  指導(dǎo)教師簽名: </p><p>  畢業(yè)設(shè)計(jì)進(jìn)度表和平時(shí)考核</p><p><b>  1 引 言3</b></p><p

7、>  1.1 遠(yuǎn)程監(jiān)控的背景知識3</p><p>  1 2 遠(yuǎn)程監(jiān)控軟件的原理4</p><p>  2 系統(tǒng)需求分析及理論基礎(chǔ)5</p><p>  2.1 系統(tǒng)需求分析5</p><p>  2.1.1 系統(tǒng)功能需求5</p><p>  2.1.2 其他需求5</p><

8、p>  2.2 系統(tǒng)開發(fā)原理及關(guān)鍵技術(shù)5</p><p>  2.2.1 系統(tǒng)開發(fā)原理5</p><p>  2.2.2 系統(tǒng)運(yùn)行概述5</p><p>  2.2.3 系統(tǒng)的關(guān)鍵技術(shù)5</p><p>  2.3 系統(tǒng)的開發(fā)平臺6</p><p>  2.3.1 Java語言6</p>

9、<p>  2.4 編程運(yùn)行環(huán)境6</p><p>  3 遠(yuǎn)程監(jiān)控系統(tǒng)系統(tǒng)設(shè)計(jì)6</p><p>  3.1 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)和分析6</p><p>  3.1.1 主控端的主要功能模塊7</p><p>  3.1.2 被監(jiān)控端的主要功能模塊7</p><p>  3.2 程序流程及分析7

10、</p><p>  3.2.1 被監(jiān)控端啟動流程7</p><p>  3.2.2 主控端啟動流程7</p><p>  3.2.3 命令接收和處理流程9</p><p>  3.2.5 遠(yuǎn)程控制流程9</p><p>  4 系統(tǒng)主要模塊設(shè)計(jì)和具體功能實(shí)現(xiàn)9</p><p>  4

11、.1 系統(tǒng)主要模塊設(shè)計(jì)9</p><p>  4.1.1 消息輸入,命令處理結(jié)果顯示模塊9</p><p>  4.1.2 通信模塊實(shí)現(xiàn)10</p><p>  4.1.3 命令處理模塊10</p><p>  4.2 連續(xù)獲得被監(jiān)控端機(jī)器屏幕變化功能實(shí)現(xiàn)11</p><p>  4.2.1 遠(yuǎn)程屏幕監(jiān)控的實(shí)

12、現(xiàn)11</p><p>  4.2.2 屏幕監(jiān)視功能測試12</p><p>  5 系統(tǒng)運(yùn)行及測試結(jié)果13</p><p>  5.1 測試方法13</p><p>  5.2 測試環(huán)境13</p><p>  5 3 系統(tǒng)運(yùn)行實(shí)例14</p><p>  5.3.1 連續(xù)獲得被監(jiān)

13、控端機(jī)器屏幕變化功能14</p><p>  5.3.2 實(shí)現(xiàn)對鼠標(biāo)、鍵盤的模擬14</p><p>  5.3.3 實(shí)現(xiàn)在被監(jiān)控端機(jī)器上執(zhí)行任意DOS命令14</p><p>  5.3.4 遠(yuǎn)程關(guān)機(jī)、遠(yuǎn)程重啟計(jì)算機(jī)15</p><p><b>  結(jié) 論16</b></p><p&

14、gt;<b>  參考文獻(xiàn)17</b></p><p><b>  附 錄18</b></p><p><b>  致 謝23</b></p><p><b>  摘 要</b></p><p>  近年來,網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,為遠(yuǎn)程監(jiān)控技術(shù)的發(fā)展

15、創(chuàng)造了條件。遠(yuǎn)程監(jiān)控系統(tǒng)軟件越來越受到人們的重視,其實(shí)用性也毋庸質(zhì)疑。基于JAVA C/S遠(yuǎn)程監(jiān)控系統(tǒng)軟件突破了空間的限制,使用者不用親臨,在自己的電腦面前就能輕松的實(shí)現(xiàn)對被監(jiān)控端機(jī)器的監(jiān)控。本系統(tǒng)采用Java網(wǎng)絡(luò)編程和Java圖形編程實(shí)現(xiàn)。筆者在開發(fā)過程中將網(wǎng)絡(luò)技術(shù)與遠(yuǎn)程監(jiān)控理論基礎(chǔ)相結(jié)合,實(shí)現(xiàn)了以下功能:能連續(xù)獲得被監(jiān)控端機(jī)器屏幕變化;實(shí)現(xiàn)被監(jiān)控端硬盤文件的上傳、下載;實(shí)現(xiàn)對鼠標(biāo)、鍵盤的模擬;實(shí)現(xiàn)在遠(yuǎn)程機(jī)器上執(zhí)行任意DOS命令;遠(yuǎn)程

16、關(guān)機(jī)、遠(yuǎn)程重啟計(jì)算機(jī),方便了用戶監(jiān)視和操作被監(jiān)控端機(jī)器。本系統(tǒng)從系統(tǒng)需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)到具體的編碼實(shí)現(xiàn)和后期的代碼優(yōu)化、功能測試都嚴(yán)格遵循了軟件工程的思想。</p><p>  The Implementation of the Remote Control System Software Based on Java Technology and the C/S Mode</p><

17、p><b>  Abstract</b></p><p>  In recent years, the continuous development of the Internet technology provides remote control technology with condition for its development. Without any suspicion

18、 to its practicability, people pay more and more attention to remote control Technology system software. Remote control technology system software based on Java technology and the c/s mode, breaks the restriction of spac

19、e. The system adopts network programming and graphic programming with java, and the users controlling the remote comp</p><p><b>  1 引 言</b></p><p>  近年來,隨著計(jì)算機(jī)及網(wǎng)絡(luò)的應(yīng)用普及,千千萬萬的人們在娛樂、通訊、

20、學(xué)習(xí)、工作等各方面都實(shí)現(xiàn)了前所未有的信息化,極大地提高了生活質(zhì)量與工作效率。然而在這種種便利背后,你關(guān)注的人在做什么呢?比如:公司員工。因此,遠(yuǎn)程監(jiān)控發(fā)揮作用了。這里以公司領(lǐng)導(dǎo)為例,遠(yuǎn)程監(jiān)控系統(tǒng)軟件方便了公司領(lǐng)導(dǎo)人管理公司員工。在一個(gè)企業(yè)中,作為公司領(lǐng)導(dǎo)人,一定很擔(dān)心自己的員工利用上班時(shí)間做工作以外的其他事情,也很擔(dān)心他們泄露公司機(jī)密,等等。有了遠(yuǎn)程監(jiān)控,這樣的擔(dān)心就很容易解決,你不用親臨監(jiān)督每個(gè)員工,在自己電腦面前就能對他們的一舉一動

21、了如指掌。</p><p>  遠(yuǎn)程監(jiān)控技術(shù),始于DOS時(shí)代,因?yàn)楫?dāng)時(shí)網(wǎng)絡(luò)不發(fā)達(dá),這門技術(shù)沒有得到很多重視,但是隨著網(wǎng)絡(luò)的高度發(fā)展,電腦的管理及技術(shù)支持的需要,遠(yuǎn)程監(jiān)控技術(shù)越來越引起人們的關(guān)注。</p><p>  網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,也為遠(yuǎn)程監(jiān)控技術(shù)的發(fā)展創(chuàng)造了條件。遠(yuǎn)程監(jiān)控軟件一般分兩個(gè)部分:一部分是客戶端程序Client,另一部分是服務(wù)器端程序Server,多數(shù)遠(yuǎn)程監(jiān)控軟件把被監(jiān)控端

22、作為服務(wù)器,主控端作為客戶端。考慮到在監(jiān)控過程中,如果把主控端作為客戶端向被監(jiān)控端發(fā)送TCP連接請求,容易被防火墻或者殺毒軟件阻止,監(jiān)控過程就不能夠成功進(jìn)行。因此,本畢業(yè)設(shè)計(jì)將被監(jiān)控端設(shè)計(jì)為客戶端,向主控端發(fā)連接請求,建立連接后,主控端向被監(jiān)控端發(fā)送遠(yuǎn)程控制命令,控制被監(jiān)控端電腦中的各種應(yīng)用程序運(yùn)行,被監(jiān)控端對主控端發(fā)送來的命令進(jìn)行處理,并將命令處理結(jié)果返回給主控端。</p><p>  遠(yuǎn)程監(jiān)控軟件順應(yīng)時(shí)代發(fā)展

23、的需求,它實(shí)用、使用簡便,是非常不錯(cuò)的軟件。</p><p>  1.1 遠(yuǎn)程監(jiān)控的背景知識</p><p>  遠(yuǎn)程監(jiān)控是在網(wǎng)絡(luò)上由一臺電腦(主控端Remote)遠(yuǎn)距離去監(jiān)控另一臺電腦(被監(jiān)控端Host)的技術(shù),這里的遠(yuǎn)程不是字面意思的遠(yuǎn)距離,一般指通過網(wǎng)絡(luò)監(jiān)控遠(yuǎn)端電腦,不過,大多數(shù)時(shí)候我們所說的遠(yuǎn)程監(jiān)控往往指在局域網(wǎng)中的遠(yuǎn)程監(jiān)控而言。</p><p>  當(dāng)操作

24、者使用主控端電腦監(jiān)控被監(jiān)控端電腦時(shí),就如同坐在被監(jiān)控端電腦的屏幕前一樣,可以啟動被監(jiān)控端電腦的應(yīng)用程序,可以使用被監(jiān)控端電腦的文件資料,不過,有一個(gè)概念需要明確,那就是主控端電腦只是將鍵盤和鼠標(biāo)的指令傳送給遠(yuǎn)程電腦,同時(shí)將被監(jiān)控端電腦的屏幕畫面通過通信線路回傳過來。也就是說,我們控制被監(jiān)控端電腦進(jìn)行操作似乎是在眼前的電腦上進(jìn)行的,實(shí)質(zhì)是在遠(yuǎn)程的電腦中實(shí)現(xiàn)的,不論打開文件,還是上網(wǎng)瀏覽、下載等都是存儲在遠(yuǎn)程的被監(jiān)控端電腦中的。</p

25、><p>  電腦中的遠(yuǎn)程控制技術(shù),始于DOS時(shí)代,只不過當(dāng)時(shí)由于技術(shù)上沒有什么大</p><p>  的變化,網(wǎng)絡(luò)不發(fā)達(dá),市場沒有更高的要求,所以遠(yuǎn)程控制技術(shù)沒有引起更多人的注意。但是,隨著網(wǎng)絡(luò)的高度發(fā)展,電腦的管理及技術(shù)支持的需要,遠(yuǎn)程操作及控制技術(shù)越來越引起人們的關(guān)注。</p><p>  遠(yuǎn)程控制一般支持下面的這些網(wǎng)絡(luò)方式:LAN、WAN、撥號方式、互聯(lián)網(wǎng)方式。

26、此外,有的遠(yuǎn)程控制軟件還支持通過串口、并口、紅外端口來對遠(yuǎn)程機(jī)進(jìn)行控制(不過,這里說的遠(yuǎn)程電腦,只能是有限距離范圍內(nèi)的電腦了)。傳統(tǒng)的遠(yuǎn)程控制軟件一般使用NETBEUI、NETBIOS、IPX/SPX、TCP/IP等協(xié)議來實(shí)現(xiàn)遠(yuǎn)程控制,不過,隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,目前很多遠(yuǎn)程控制軟件提供通過Web頁面以Java技術(shù)來控制遠(yuǎn)程電腦,這樣可以實(shí)現(xiàn)不同操作系統(tǒng)下的遠(yuǎn)程控制,例如數(shù)技通科技有限公司在就推出了全球第一套基于中文JAVA的跨平臺遠(yuǎn)程控

27、制軟件――易控。</p><p>  1 2 遠(yuǎn)程監(jiān)控軟件的原理</p><p>  遠(yuǎn)程監(jiān)控軟件一般分兩個(gè)部分:一部分是客戶端程序Client,另一部分是服務(wù)器端程序Server,由于本畢業(yè)設(shè)計(jì)的通信模塊有別于傳統(tǒng)的遠(yuǎn)程監(jiān)控軟件,在使用前需要將客戶端程序安裝到被監(jiān)控端電腦上,將服務(wù)器端程序安裝到主控端電腦上。</p><p>  它的控制的過程是先在被監(jiān)控端電腦上

28、執(zhí)行客戶端程序,像一個(gè)普通的客戶一樣向主控端電腦中的服務(wù)器端程序發(fā)出信號,建立一個(gè)特殊的遠(yuǎn)程服務(wù),然后通過這個(gè)遠(yuǎn)程服務(wù),接收主控端發(fā)送過來的遠(yuǎn)程控制命令,并對命令進(jìn)行處理,最后將命令處理結(jié)果返回給主控端,我們稱這種遠(yuǎn)程控制方式為基于遠(yuǎn)程服務(wù)的遠(yuǎn)程控制。通過遠(yuǎn)程監(jiān)控軟件,我們可以進(jìn)行很多方面的遠(yuǎn)程控制,包括獲取目標(biāo)電腦屏幕圖像、窗口及進(jìn)程列表;記錄并提取遠(yuǎn)端鍵盤事件(擊鍵序列,即監(jiān)視遠(yuǎn)端鍵盤輸入的內(nèi)容);可以打開、關(guān)閉目標(biāo)電腦的任意目錄并

29、實(shí)現(xiàn)資源共享;提取撥號網(wǎng)絡(luò)及普通程序的密碼;激活、中止遠(yuǎn)端程序進(jìn)程;管理遠(yuǎn)端電腦的文件和文件夾;關(guān)閉或者重新啟動遠(yuǎn)端電腦中的操作系統(tǒng);修改Windows注冊表;通過遠(yuǎn)端電腦上、下載文件和捕獲音頻、視頻信號等。</p><p>  前面我們所說的是一臺電腦對一臺電腦的情況,其實(shí),基于遠(yuǎn)程服務(wù)的遠(yuǎn)程控制最適合的模式是一對多,即利用遠(yuǎn)程監(jiān)控軟件,我們可以使用一臺電腦監(jiān)控多臺電腦,這就使得我們不必為辦公室的每一臺電腦都安

30、裝一個(gè)調(diào)制解調(diào)器,而只需要利用辦公室局域網(wǎng)的優(yōu)勢就可以輕松實(shí)現(xiàn)遠(yuǎn)程多點(diǎn)控制了。</p><p>  在進(jìn)行一臺電腦對多臺遠(yuǎn)端電腦進(jìn)行控制時(shí),我們發(fā)現(xiàn),遠(yuǎn)程監(jiān)控軟件似乎更像一個(gè)局域網(wǎng)的網(wǎng)絡(luò)管理員,而提供遠(yuǎn)程控制的遠(yuǎn)程終端服務(wù)就像極了辦公室局域網(wǎng)的延伸。這種一對多的連接方式在節(jié)省了調(diào)制解調(diào)器的同時(shí),還使得網(wǎng)絡(luò)的接入更加安全可靠,網(wǎng)絡(luò)管理員也更易于管理局域網(wǎng)上的每一臺電腦。</p><p>  

31、本文所論述的遠(yuǎn)程監(jiān)控系統(tǒng)就是依照這種方式進(jìn)行的。</p><p>  2 系統(tǒng)需求分析及理論基礎(chǔ)</p><p>  2.1 系統(tǒng)需求分析</p><p>  2.1.1 系統(tǒng)功能需求</p><p>  1.連續(xù)獲得被控端機(jī)器屏幕變化。</p><p>  2.實(shí)現(xiàn)對鼠標(biāo)、鍵盤的模擬。</p><

32、p>  3.實(shí)現(xiàn)在被控端機(jī)器上執(zhí)行任意DOS命令。</p><p>  4.遠(yuǎn)程關(guān)機(jī)、遠(yuǎn)程重啟計(jì)算機(jī)。</p><p>  2.1.2 其他需求</p><p>  1.系統(tǒng)實(shí)用,界面操作簡便。</p><p>  2.被監(jiān)控端自動隱藏運(yùn)行。</p><p>  被監(jiān)控端將隨電腦啟動而自動運(yùn)行,運(yùn)行時(shí)默認(rèn)無任何可

33、見界面。</p><p>  2.2 系統(tǒng)開發(fā)原理及關(guān)鍵技術(shù)</p><p>  2.2.1 系統(tǒng)開發(fā)原理</p><p>  本系統(tǒng)是利用類java.awt.robot中的屏幕截取和鼠標(biāo)、鍵盤自動控制功能,然后加上網(wǎng)絡(luò)傳輸功能來完成來完成截屏和遠(yuǎn)程控制的。</p><p>  2.2.2 系統(tǒng)運(yùn)行概述</p><p>

34、;  1.啟動被監(jiān)控端,打開指定的UDP端口號。用于讀取命令。</p><p>  2.被監(jiān)控端讀取命令(命令格式為ordername:port)ordername為命令名字,port為主控端打開的TCP端口。</p><p>  3.接到主控端連接后,被監(jiān)控端就對當(dāng)前用戶的桌面采用屏幕截取,然后發(fā)送給主控端。依被監(jiān)控端設(shè)計(jì)的不同,可以設(shè)定屏幕截取的時(shí)間間隔,時(shí)間間隔短一點(diǎn)就可以獲得連續(xù)屏

35、幕變化了。</p><p>  4.在被監(jiān)控端實(shí)現(xiàn)DOS命令的執(zhí)行。</p><p>  2.2.3 系統(tǒng)的關(guān)鍵技術(shù)</p><p>  系統(tǒng)使用的關(guān)鍵技術(shù)就是Java網(wǎng)絡(luò)編程和Java圖形編程。用Java網(wǎng)絡(luò)編程實(shí)現(xiàn)主控端和被監(jiān)控端的通訊(命令收發(fā)、數(shù)據(jù)傳送),用Java圖形編程完成主控端控制界面的編寫。具體應(yīng)用如下:</p><p>  

36、1.實(shí)現(xiàn)主控端(服務(wù)器)與被監(jiān)控端(客戶端)之間的通訊。</p><p>  ——用Java Socket來實(shí)現(xiàn)。</p><p>  2.用Java采集事件,封裝成消息,用于發(fā)送。</p><p>  ——在主控端機(jī)器上采集事件(一般只不過是鍵盤和鼠標(biāo)的事件),然后封裝成消息類傳輸?shù)奖槐O(jiān)控端。</p><p>  3.在被監(jiān)控端上重演主控端

37、的動作事件。</p><p>  ——在被監(jiān)控端運(yùn)行client端,接收消息,如果主控端有請求操作的消息,用Robot截下當(dāng)前屏幕,傳給主控端,主控端顯示被監(jiān)控端的屏幕,是一個(gè)位圖;然后接收在這個(gè)位圖上的鼠標(biāo)事件和鍵盤事件,并把鼠標(biāo)位置(位圖上的坐標(biāo)換算成對應(yīng)的屏幕上的坐標(biāo))和鍵值送到被監(jiān)控端上,在被監(jiān)控端上重演同樣的事件。</p><p>  2.3 系統(tǒng)的開發(fā)平臺</p>

38、<p>  JDK1.5.0,Windows XP Professional</p><p>  2.3.1 Java語言</p><p>  Java語言是SUN公司于1995年5月推出的新一代面向?qū)ο蟮挠?jì)算機(jī)通用編程語言,是繼WWW之后又一引起世界轟動的產(chǎn)品。Java語言的特點(diǎn)是跨平臺和強(qiáng)大的網(wǎng)絡(luò)編程功能。在Java語言誕生之前,Internet已存在,所以Java語言本身

39、就封裝了大量進(jìn)行網(wǎng)絡(luò)編程的類庫,使得網(wǎng)絡(luò)編程功能強(qiáng)大,同時(shí)又簡化了網(wǎng)絡(luò)編程的操作。因此利用Java語言可以開發(fā)出功能強(qiáng)大的網(wǎng)絡(luò)應(yīng)用程序。</p><p>  2.4 編程運(yùn)行環(huán)境</p><p><b>  硬件環(huán)境:</b></p><p>  CPU: AMD 速龍 2 X2 240</p><p><b&g

40、t;  內(nèi)存:512M</b></p><p><b>  硬盤:200G</b></p><p><b>  軟件環(huán)境:</b></p><p>  操作系統(tǒng):Windows XP Professional</p><p>  應(yīng)用軟件:JDK1.5.0 </p><

41、;p>  3 遠(yuǎn)程監(jiān)控系統(tǒng)系統(tǒng)設(shè)計(jì)</p><p>  3.1 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)和分析</p><p>  本系統(tǒng)設(shè)計(jì)的方案為C/S模式,在主控端電腦上安裝服務(wù)器端程序,在被監(jiān)控端電腦上安裝客戶端程序。該系統(tǒng)的控制過程是先在主控端電腦上執(zhí)行服務(wù)器程序,在命令收發(fā)過程中,主控端向被監(jiān)控端配置的UDP端口發(fā)送命令,該命令</p><p>  系統(tǒng)總體結(jié)構(gòu)如圖1:&

42、lt;/p><p>  是一個(gè)控制命令,要求被監(jiān)控端來連接其開啟的TCP端口和要求被監(jiān)控端執(zhí)行的操作,如果被監(jiān)控端監(jiān)聽到該UDP命令,主動開啟TCP端口向主控端發(fā)送連接請求。這樣就建立了一個(gè)特殊的遠(yuǎn)程服務(wù),然后通過這個(gè)遠(yuǎn)程服務(wù),主控端使用各種遠(yuǎn)程控制功能發(fā)送遠(yuǎn)程控制命令,控制被監(jiān)控端電腦中的各種應(yīng)用程序運(yùn)行。系統(tǒng)總體結(jié)構(gòu)如圖1:</p><p>  軟件功能分解到通信的兩個(gè)端點(diǎn)上,即客戶端和服

43、務(wù)器端,采用Client/Server模式。這樣能提高設(shè)計(jì)的靈活性,易于系統(tǒng)的擴(kuò)展。被監(jiān)控端接受主控端命令,并處理命令,然后輸出命令處理結(jié)果;主控端則提供交互界面及命令處理結(jié)果顯示;數(shù)據(jù)交換通道的建立由雙方的數(shù)據(jù)通信模塊負(fù)責(zé)。從而實(shí)現(xiàn)點(diǎn)到點(diǎn)的直接控制監(jiān)控,滿足實(shí)時(shí)性要求。</p><p>  3.1.1 主控端的主要功能模塊</p><p>  主控端包括的模塊有:消息輸入,命令處理結(jié)果顯

44、示模塊,通信模塊。消息輸入模塊負(fù)責(zé)將用戶界面的事件傳送到通信模塊,通信模塊將命令信息發(fā)送到被監(jiān)控端;被監(jiān)控端執(zhí)行操作后返回的成功或失敗信息交由主控端命令處理結(jié)果顯示模塊根據(jù)信息的格式進(jìn)行顯示。</p><p>  3.1.2 被監(jiān)控端的主要功能模塊</p><p>  被監(jiān)控端包括的模塊有:通信模塊,命令處理模塊。被監(jiān)控端處于偵聽狀態(tài),一旦接收到合法的連接請求,就開UDP端口,并開啟命令接

45、受線程,建立連接后,通過通信模塊接收主控端發(fā)來的命令信息,經(jīng)命令處理模塊解釋后,并將結(jié)果返回到主控端。</p><p>  3.2 程序流程及分析</p><p>  3.2.1 被監(jiān)控端啟動流程</p><p>  在被監(jiān)控端安裝客戶端程序,程序啟動的時(shí)候,嘗試開啟UDP端口,如果防火墻或者殺毒軟件阻止,嘗試開啟配置的其它UDP端口,如果都嘗試完畢,啟動失敗。否則

46、,將開啟的UDP套接字傳入,然后開啟命令接收線程,目的是進(jìn)行命令獲取,并對獲取的命令進(jìn)行處理。然后將自己復(fù)制到自啟動項(xiàng),并改名為Explorer.jar. 流程如圖2。</p><p>  圖2 被監(jiān)控端啟動流程</p><p>  3.2.2 主控端啟動流程</p><p>  在主控端安裝服務(wù)器程序,主控端首先啟動其控制窗口類,初始化圖形在主控端安裝服務(wù)器程序,

47、主控端首先啟動其控制窗口類,初始化圖形顯示,然后用 圖3 主控端啟動流程戶輸入被監(jiān)控端的IP地址。接著主控端開啟任意TCP端口,并向該IP配置的UDP端口發(fā)送初始化命令(命令格式為ordername:port),ordername為命名字,port為主控端打開的TCP端口號。主控端對開啟的TCP端口進(jìn)行監(jiān)聽,如果超時(shí),連接失敗。否則,主控端讀取被監(jiān)控端的狀態(tài)對象,接著啟動控制模塊和屏

48、幕監(jiān)視模塊。流程如圖3。</p><p>  3.2.3 命令接收和處理流程</p><p>  被監(jiān)控端UDP端口啟動成功后,就開始對該UDP端口進(jìn)行監(jiān)聽,如果監(jiān)聽到有命令,就讀取它,并判斷命令是否有效,命令以ordername:port為格式,如果無效,返回繼續(xù)讀取命令,否則,調(diào)用相應(yīng)的命令處理模塊對命令進(jìn)行處理,命令處理完后將處理結(jié)果返回給主控端。流程如圖4。</p>

49、<p>  3.2.5 遠(yuǎn)程控制流程</p><p>  被監(jiān)控端收到主控端的UDP命令:control:TCP Port,獲得主控端開放的</p><p>  TCP端口號。成功連接主控端的TCP端口后,并從中讀取事件對象,接著對事件對象進(jìn)行類型判斷,如果是鍵盤事件,就對鍵盤事件重演;如果是鼠標(biāo)事件,就對鼠標(biāo)事件重演。接著判定控制套接是否關(guān)閉,如果關(guān)閉,控制結(jié)束。否則返回繼續(xù)讀

50、取事件。流程如圖4。</p><p><b>  圖4 遠(yuǎn)程控制流程</b></p><p>  4 系統(tǒng)主要模塊設(shè)計(jì)和具體功能實(shí)現(xiàn)</p><p>  4.1 系統(tǒng)主要模塊設(shè)計(jì)</p><p>  4.1.1 消息輸入,命令處理結(jié)果顯示模塊</p><p>  主控端消息輸入,顯示模塊的開發(fā)采用

51、JAVA圖形編程,利用模塊化、通用性強(qiáng)的特點(diǎn),實(shí)現(xiàn)遠(yuǎn)程監(jiān)控中用戶控制界面的編寫。</p><p>  4.1.2 通信模塊實(shí)現(xiàn)</p><p>  1.Socket編程</p><p>  數(shù)據(jù)通信模塊中的數(shù)據(jù)通道建立采用Socket編程。Socket支持TCP/IP協(xié)議網(wǎng)絡(luò)通信的基本操作;它屏蔽了網(wǎng)絡(luò)底層的通信細(xì)節(jié),使編程簡單;它對通信端點(diǎn)進(jìn)行了抽象,提供發(fā)送和接

52、收數(shù)據(jù)機(jī)制及打開、計(jì)算和關(guān)閉會話的能力。本項(xiàng)目中,客戶端和服務(wù)器代表運(yùn)行在Windows操作平臺下,采用Java Socket來編程實(shí)現(xiàn)命令和數(shù)據(jù)信息的傳輸。</p><p><b>  2.通信建立</b></p><p>  服務(wù)器與客戶端開始都必須調(diào)用socket()函數(shù)產(chǎn)生一個(gè)Socket套接字。由于讓被監(jiān)控端開TCP端口,很容易被防火墻和殺毒軟件阻止,監(jiān)控就

53、難以完成。這里,我們在主控端開TCP端口,等待被監(jiān)控端來主動連接,這樣監(jiān)控功能就能更順利的開始。主控端首先創(chuàng)建一個(gè)ServerSocket對象,然后調(diào)用ServerSocket</p><p>  的方法accept實(shí)現(xiàn)監(jiān)聽。如果被監(jiān)控端來訪問,accept會返回一個(gè)socket對象,利用這個(gè)對象就可以很輕松的完成服務(wù)器和客戶端的數(shù)據(jù)交換。只有被監(jiān)控端有請求時(shí)才建立連接,建立連接后,客戶端與服務(wù)器之間便可以雙向傳

54、輸數(shù)據(jù)。當(dāng)?shù)玫絪ocket對象后,主控端建立ObjectInputStream對象,被監(jiān)控端建立ObjectOutputStream對象實(shí)現(xiàn)消息的接收和發(fā)送。完成通信后,調(diào)用ServerSocket和socket對象的close關(guān)閉套接字,結(jié)束通信。</p><p>  主控端主要通信代碼:</p><p>  ServerSocket server=NewRadomSocket.open

55、NewPort(); //開啟新端口</p><p>  Socket socket=null;</p><p>  server.setSoTimeout(Parameter.TCP_TIME_OUT); //設(shè)置超時(shí)</p><p>  socket=server.accept(); //開啟</p><p>  ObjectInputS

56、tream readin=new ObjectInputStream(socket.getInputStream()); //封裝流,準(zhǔn)備讀取一個(gè)對象</p><p>  socket.close(); //關(guān)閉socket,結(jié)束通信</p><p>  被監(jiān)控端主要通信代碼:</p><p>  Socket socket=new Socket(serverip,

57、 serverport);</p><p>  ObjectOutputStream send=new ObjectOutputStream(socket.getOutputStream());//封裝流</p><p>  send.writeObject(cc); //發(fā)送</p><p>  send.close(); //關(guān)閉流</p><

58、;p>  socket.close(); //關(guān)閉套接</p><p>  4.1.3 命令處理模塊</p><p>  命令處理模塊的實(shí)現(xiàn)就是通過函數(shù)調(diào)用,調(diào)用各個(gè)命令處理類。在命令處理模塊中,被監(jiān)控端執(zhí)行以下操作:發(fā)送自己的狀態(tài)信息給主控端;建立圖象傳送;開啟控制命令套接字;文件上傳;文件下載;執(zhí)行DOS命令,獲取執(zhí)行結(jié)果和錯(cuò)誤流。</p><p>  4

59、.2 連續(xù)獲得被監(jiān)控端機(jī)器屏幕變化功能實(shí)現(xiàn)</p><p>  4.2.1 遠(yuǎn)程屏幕監(jiān)控的實(shí)現(xiàn)</p><p>  實(shí)現(xiàn)屏幕監(jiān)控要完成被監(jiān)控端發(fā)送屏幕截圖和主控端接收圖片的工作,該功能的實(shí)現(xiàn)中構(gòu)造了兩個(gè)類:SendImage Thread和GetImageThread。</p><p>  圖5 SendImage Thread類圖</p><p

60、>  SendImage Thread JavaBean 代碼和說明如下:</p><p>  /*被監(jiān)控端將Java屏幕"照相機(jī)"采集到的圖片壓縮為JPEG文件,發(fā)送到主控端*/</p><p>  public class SendImageThread extends Thread{</p><p>  。。。。。。。。。。。。。。。

61、。(部分代碼略去)</p><p>  public void run(){</p><p><b>  int i=0;</b></p><p>  OutputStream out=null;</p><p>  JPEGImageEncoder encoder=null; //壓縮為JPEG</p>

62、<p>  try {out = client.getOutputStream(); //獲得TCP套接字流</p><p>  encoder=JPEGCodec.createJPEGEncoder(out);//將流壓縮為JPEG對象流</p><p>  } catch (IOException e1) {</p><p>  e1.printSta

63、ckTrace();</p><p><b>  }</b></p><p>  while(true){</p><p>  image=impv.CopyScreen(); //截取屏幕圖象</p><p>  encoder.encode(image) ; //向網(wǎng)絡(luò)寫入JPEG圖形對象</p>&l

64、t;p><b>  }</b></p><p><b>  }</b></p><p>  圖6 GetImage Thread類圖</p><p>  GetImage Thread JavaBean 代碼和說明如下:</p><p>  /*主控端接收J(rèn)PEG文件,并在畫布上顯示*/<

65、;/p><p>  public class GetImageThread extends Thread{</p><p>  。。。。。。。。。。(部分代碼略去)</p><p>  public void run(){</p><p>  BufferedImage image=null;</p><p>  JPEG

66、ImageDecoder de=null;</p><p>  InputStream in=null;</p><p><b>  try {</b></p><p>  socket.setReceiveBufferSize(1024); //設(shè)置接收緩沖</p><p>  socket.setSoTimeout(

67、60000); //設(shè)置TCP過期時(shí)間</p><p>  in=socket.getInputStream(); //獲取套接字輸入流</p><p>  de=JPEGCodec.createJPEGDecoder(in); //將輸入流封裝為JPEG對象流</p><p>  } catch (IOException e) {</p><p

68、>  // TODO Auto-generated catch block</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p>  int wrongtime=0;</p><p>  while(true){</p><p>

69、;  wrongtime++;</p><p>  if(wrongtime>=200)break;</p><p>  image=de.decodeAsBufferedImage(); //對JPEG對象解碼,還原為BufferedImage圖形對象</p><p>  MainFrame.getInstance().ShowImage(image); /

70、/在控制窗口的畫布上顯示圖象</p><p><b>  } </b></p><p><b>  }</b></p><p>  4.2.2 屏幕監(jiān)視功能測試</p><p>  在系統(tǒng)實(shí)現(xiàn)過程中,成功完成了連續(xù)獲得被監(jiān)控端機(jī)器屏幕變化的功能,下面為測試圖片:</p><p&g

71、t;<b>  圖7 屏幕監(jiān)視圖片</b></p><p>  本節(jié)詳細(xì)介紹了遠(yuǎn)程屏幕監(jiān)視的功能實(shí)現(xiàn)。對于功能需求中的其他功能,這里就不逐一介紹了。對于遠(yuǎn)程控制功能,如果要實(shí)現(xiàn)該功能,首先需要主控端向被監(jiān)控端發(fā)送遠(yuǎn)程控制命令,被監(jiān)控端收到命令后,首先返回給主控端一個(gè)包含被監(jiān)控端屏幕分辨率等的狀態(tài)信息,主控端根據(jù)狀態(tài)信息更新本機(jī)所存的被控端狀態(tài),并調(diào)整畫布大小,使其比例符合被監(jiān)控端屏幕分辨率,

72、這樣才可以精確定位。在畫布中對事件進(jìn)行監(jiān)聽,采集事件,封裝成消息發(fā)送給被監(jiān)控端,然后在被監(jiān)控端使用Robot對象控制鼠標(biāo)對象的位置與動作,實(shí)現(xiàn)事件重演。這樣就能實(shí)現(xiàn)遠(yuǎn)程控制。</p><p>  5 系統(tǒng)運(yùn)行及測試結(jié)果</p><p><b>  5.1 測試方法</b></p><p>  采用自下往上的測試方法,先進(jìn)行單元測試,再集成測試。

73、</p><p><b>  5.2 測試環(huán)境</b></p><p>  測試環(huán)境為Windows XP,JDK。</p><p>  5 3 系統(tǒng)運(yùn)行實(shí)例</p><p>  主控端啟動,顯示系統(tǒng)操作界面圖,如圖8:</p><p><b>  圖8 系統(tǒng)主界面</b>&

74、lt;/p><p>  5.3.1 連續(xù)獲得被監(jiān)控端機(jī)器屏幕變化功能</p><p>  該功能在上一章詳細(xì)介紹了它的實(shí)現(xiàn)過程。運(yùn)行實(shí)例見圖7</p><p>  5.3.2 實(shí)現(xiàn)對鼠標(biāo)、鍵盤的模擬</p><p>  該功能也正常,主控端能很好的操作對方機(jī)器,就像坐在對方機(jī)器前一樣,瀏覽對方文件,運(yùn)行各種應(yīng)用程序,上網(wǎng)等。運(yùn)行實(shí)例如圖9。<

75、;/p><p><b>  圖9 操作對方機(jī)器</b></p><p>  5.3.3 實(shí)現(xiàn)在被監(jiān)控端機(jī)器上執(zhí)行任意DOS命令</p><p>  該功能成功執(zhí)行。結(jié)果顯示如下,這里以執(zhí)行ipconfig命令和java –version為例。</p><p>  圖10 執(zhí)行ipconfig結(jié)果</p><

76、;p>  圖11 執(zhí)行java –version結(jié)果</p><p>  5.3.4 遠(yuǎn)程關(guān)機(jī)、遠(yuǎn)程重啟計(jì)算機(jī)</p><p>  該功能也能正常運(yùn)行。這里就不給出圖例了。</p><p><b>  結(jié) 論</b></p><p>  經(jīng)過幾個(gè)月的設(shè)計(jì)和開發(fā),遠(yuǎn)程監(jiān)控系統(tǒng)基本開發(fā)完畢。實(shí)現(xiàn)了功能需求擬訂的功

77、能,各功能能夠正常運(yùn)行:能連續(xù)獲得被監(jiān)控端機(jī)器的屏幕變化;能遠(yuǎn)程控制對方機(jī)器;能重啟,關(guān)閉對方計(jì)算機(jī)。但是由于畢業(yè)設(shè)計(jì)時(shí)間較短,所以該系統(tǒng)還有許多不盡如人意的地方。</p><p>  任何一門技術(shù)都要以能夠解決實(shí)際工作中出現(xiàn)的問題為依據(jù)和評判優(yōu)劣的基本依據(jù)。同時(shí)讓我對軟件工程有了進(jìn)一步的理解,在最開始的開發(fā)過程中,我急于完成編碼,設(shè)計(jì)不足,在編碼過程中程序邏輯攪成一團(tuán),剪不斷,理還亂。后來干脆推翻,從頭開始。我

78、得出結(jié)論,在沒想好之前,千萬不要動手寫代碼。</p><p>  在系統(tǒng)的研制過程中,我也遇到許多困難,因?yàn)橐郧皼]有項(xiàng)目經(jīng)驗(yàn),起步很難,不過通過各種知識的補(bǔ)充學(xué)習(xí),并且查找各種資料,讓我慢慢進(jìn)入狀態(tài),并且從中找到很多樂趣。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 張化祥,劉弘.JAVA語言基礎(chǔ)教程 北京 清華大

79、學(xué)出版社,2007</p><p>  [2] 耿祥義,張躍平.JAVA 2(第二版)[M].北京:清華大學(xué)出版社,2004</p><p>  [3] Bruce Eckel.JAVA編程思想[M].機(jī)械工業(yè)出版社,2005</p><p>  [4] 王錦,張小雷. JAVA語言基礎(chǔ)教程 北京 人民郵電出版社,2007</p><p>&

80、lt;b>  附 錄</b></p><p>  充分理解Socket 1.什么是socket 所謂socket通常也稱作"套接字",用于描述IP地址和端口,是一個(gè)通信鏈的句柄。應(yīng)用程序通常通過"套接字"向網(wǎng)絡(luò)發(fā)出請求或者應(yīng)答網(wǎng)絡(luò)請求。 以J2SDK-1.3為例,Socket和ServerSocket類庫位于java.net包中。ServerS

81、ocket用于服務(wù)器端,Socket是建立網(wǎng)絡(luò)連接時(shí)使用的。在連接成功時(shí),應(yīng)用程序兩端都會產(chǎn)生一個(gè)Socket實(shí)例,操作這個(gè)實(shí)例,完成所需的會話。對于一個(gè)網(wǎng)絡(luò)連接來說,套接字是平等的,并沒有差別,不因?yàn)樵诜?wù)器端或在客戶端而產(chǎn)生不同級別。不管是Socket還是ServerSocket它們的工作都是通過SocketImpl類及其子類完成的。 重要的Socket API: java.net.Socket繼承于java.lang.Ob

82、ject,有八個(gè)構(gòu)造器,其方法并不多,下面介紹使用最頻繁的三個(gè)方法,其它方法大家可以見JDK-1.3文檔。 .Accept方法用于產(chǎn)生"阻塞",直到接受到一個(gè)連接,并且返回一個(gè)客戶端的Socket對象實(shí)例。"阻塞"是一個(gè)術(shù)語,它使程序運(yùn)行暫時(shí)"停留</p><p>  Socket通訊的過程</p><p>  Server端Liste

83、n(監(jiān)聽)某個(gè)端口是否有連接請求,Client端向Server 端發(fā)出Connect(連接)請求,Server端向Client端發(fā)回Accept(接受)消息。一個(gè)連接就建立起來了。Server端和Client 端都可以通過Send,Write等方法與對方通信。</p><p>  對于一個(gè)功能齊全的Socket,都要包含以下基本結(jié)構(gòu),其工作過程包含以下四個(gè)基本的步驟:</p><p>  

84、(1) 創(chuàng)建Socket;</p><p> ?。?) 打開連接到Socket的輸入/出流;</p><p> ?。?) 按照一定的協(xié)議對Socket進(jìn)行讀/寫操作;</p><p> ?。?) 關(guān)閉Socket.(在實(shí)際應(yīng)用中,并未使用到顯示的close,雖然很多文章都推薦如此,不過在我的程序中,可能因?yàn)槌绦虮旧肀容^簡單,要求不高,所以并未造成什么影響。)<

85、/p><p>  3,創(chuàng)建Socket</p><p><b>  創(chuàng)建Socket</b></p><p>  java在包java.net中提供了兩個(gè)類Socket和ServerSocket,分別用來表示雙向連接的客戶端和服務(wù)端。這是兩個(gè)封裝得非常好的類,使用很方便。其構(gòu)造方法如下:</p><p>  Socket(I

86、netAddress address, int port);</p><p>  Socket(InetAddress address, int port, boolean stream);</p><p>  Socket(String host, int prot);</p><p>  Socket(String host, int prot, boolean

87、 stream);</p><p>  Socket(SocketImpl impl)</p><p>  Socket(String host, int port, InetAddress localAddr, int localPort)</p><p>  Socket(InetAddress address, int port, InetAddress lo

88、calAddr, int localPort)</p><p>  ServerSocket(int port);</p><p>  ServerSocket(int port, int backlog);</p><p>  ServerSocket(int port, int backlog, InetAddress bindAddr)</p>

89、<p>  其中address、host和port分別是雙向連接中另一方的IP地址、主機(jī)名和端 口號,stream指明socket是流socket還是數(shù)據(jù)報(bào)socket,localPort表示本地主機(jī)的端口號,localAddr和 bindAddr是本地機(jī)器的地址(ServerSocket的主機(jī)地址),impl是socket的父類,既可以用來創(chuàng)建serverSocket又可 以用來創(chuàng)建Socket。count則表示服務(wù)端所能支

90、持的最大連接數(shù)。例如:</p><p>  Socket client = new Socket("127.0.01.", 80);</p><p>  ServerSocket server = new ServerSocket(80);</p><p>  注意,在選擇端口時(shí),必須小心。每一個(gè)端口提供一種特定的服務(wù),只有給出正確的端口,才 能

91、獲得相應(yīng)的服務(wù)。0~1023的端口號為系統(tǒng)所保留,例如http服務(wù)的端口號為80,telnet服務(wù)的端口號為21,ftp服務(wù)的端口號為23, 所以我們在選擇端口號時(shí),最好選擇一個(gè)大于1023的數(shù)以防止發(fā)生沖突。</p><p>  在創(chuàng)建socket時(shí)如果發(fā)生錯(cuò)誤,將產(chǎn)生IOException,在程序中必須對之作出處理。所以在創(chuàng)建Socket或ServerSocket是必須捕獲或拋出例外。</p>

92、<p><b>  致 謝</b></p><p>  經(jīng)過半年的忙碌和工作,本次畢業(yè)設(shè)計(jì)已經(jīng)接近尾聲,由于經(jīng)驗(yàn)的匱乏,難免有許多考慮不周全的地方,如果沒有導(dǎo)師的督促指導(dǎo),以及一起工作的同學(xué)們的支持,想要完成這個(gè)設(shè)計(jì)是難以想象的。 在這里首先要感謝我的老師。老師平日里工作繁忙,但在我做畢業(yè)設(shè)計(jì)的每個(gè)階段,從外出實(shí)習(xí)到查閱資料,設(shè)計(jì)草案的確定和修改,中期檢查等整個(gè)過程中都給予

93、了我悉心的指導(dǎo)。除了敬佩 老師的專業(yè)水平外,他的治學(xué)嚴(yán)謹(jǐn)和科學(xué)研究的精神也是我永遠(yuǎn)學(xué)習(xí)的榜樣,并將積極影響我今后的學(xué)習(xí)和工作。其次要感謝和我一起作畢業(yè)設(shè)計(jì)的其他同學(xué),他們在設(shè)計(jì)中勤奮工作,克服了許多困難來完成此次畢業(yè)設(shè)計(jì),并承擔(dān)了大部分的工作量。如果沒有他們的努力工作,此次設(shè)計(jì)的完成將變得非常困難。 然后還要感謝所有的老師,為我打下扎實(shí)的專業(yè)知識基礎(chǔ);同時(shí)還要感謝所有的同學(xué)們,正是因?yàn)橛辛怂麄兊闹С趾凸膭?,此次畢業(yè)設(shè)計(jì)才會順利完

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論