網(wǎng)絡(luò)遠(yuǎn)程監(jiān)控及管理系統(tǒng)畢業(yè)設(shè)計(jì)說明書_第1頁
已閱讀1頁,還剩43頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  本科畢業(yè)設(shè)計(jì)說明書</b></p><p>  題 目:網(wǎng)絡(luò)遠(yuǎn)程監(jiān)控及管理系統(tǒng)</p><p>  掃描和遠(yuǎn)程操作模塊的設(shè)計(jì)與實(shí)現(xiàn)</p><p>  院 (部): 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院</p><p>  專 業(yè): 網(wǎng)絡(luò)工程</p><p><b&

2、gt;  班 級(jí): </b></p><p><b>  姓 名:</b></p><p><b>  學(xué) 號(hào): </b></p><p><b>  指導(dǎo)教師: </b></p><p>  完成日期: 2013年5月28日</p>

3、<p><b>  目 錄</b></p><p><b>  摘 要i</b></p><p>  Abstractii</p><p><b>  1 前 言1</b></p><p>  1.1 網(wǎng)絡(luò)遠(yuǎn)程監(jiān)控系統(tǒng)的研究意義1</p>

4、<p>  1.2 網(wǎng)絡(luò)遠(yuǎn)程監(jiān)控系統(tǒng)的技術(shù)現(xiàn)狀1</p><p>  1.3 跨平臺(tái)的網(wǎng)絡(luò)遠(yuǎn)程監(jiān)控系統(tǒng)的前景2</p><p>  2 系統(tǒng)分析與設(shè)計(jì)2</p><p>  2.1 需求分析2</p><p>  2.2 系統(tǒng)設(shè)計(jì)3</p><p>  2.2.1 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)3</p>

5、;<p>  2.2.2 系統(tǒng)功能設(shè)計(jì)3</p><p>  3 遠(yuǎn)程控制概述4</p><p>  3.1 遠(yuǎn)程控制的概念4</p><p>  3.1.1 遠(yuǎn)程控制的原理4</p><p>  3.1.2 遠(yuǎn)程控制的實(shí)現(xiàn)5</p><p>  3.1.3 遠(yuǎn)程控制的發(fā)展前景5</p&

6、gt;<p>  3.2 遠(yuǎn)程控制、木馬、病毒與黑客程序6</p><p>  4 網(wǎng)絡(luò)及應(yīng)用協(xié)議7</p><p>  4.1 計(jì)算機(jī)網(wǎng)絡(luò)的基本概念7</p><p>  4.1.1 計(jì)算機(jī)網(wǎng)絡(luò)的定義7</p><p>  4.1.2 計(jì)算機(jī)網(wǎng)絡(luò)的基本功能8</p><p>  4.1.3 計(jì)

7、算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)8</p><p>  4.1.4 OSI體系結(jié)構(gòu)9</p><p>  4.2 TCP/IP協(xié)議分析10</p><p>  5 遠(yuǎn)程控制的實(shí)現(xiàn)基礎(chǔ)11</p><p>  5.1 Socket編程基礎(chǔ)11</p><p>  5.2 Windows的消息系統(tǒng)14</p>&

8、lt;p>  5.2.1 消息的種類14</p><p>  5.2.2 MFC中的消息處理15</p><p>  5.2.3 創(chuàng)建消息映射15</p><p>  6 詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)17</p><p>  6.1 軟件的實(shí)現(xiàn)的前提和功能17</p><p>  6.1.1 軟件實(shí)現(xiàn)的前提18&l

9、t;/p><p>  6.1.2 軟件實(shí)現(xiàn)的功能18</p><p>  6.2 控制端程序的實(shí)現(xiàn)19</p><p>  6.3 被控制端程序的實(shí)現(xiàn)23</p><p>  6.4 軟件編寫過程中的一些問題和總結(jié)29</p><p><b>  7 功能測(cè)試31</b></p>

10、<p><b>  結(jié) 論31</b></p><p><b>  致 謝37</b></p><p><b>  參考文獻(xiàn)38</b></p><p><b>  摘 要</b></p><p>  隨著網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,日益

11、廣泛網(wǎng)絡(luò)覆蓋為人們的生活提供了許多的便利。網(wǎng)絡(luò)在人們生活中地位的提升,帶來的是對(duì)網(wǎng)絡(luò)安全和管理的日趨重視。其中一個(gè)廣為人知的課題是本文中將實(shí)現(xiàn)的網(wǎng)絡(luò)遠(yuǎn)程監(jiān)控及管理系統(tǒng),這為受到地域限制的網(wǎng)絡(luò)管理問題的解決提供了一些思路。</p><p>  本文針對(duì)遠(yuǎn)程控制的概念以及軟件的編寫問題進(jìn)行了詳盡、深入的分析、研究。首先闡述了遠(yuǎn)程控制的概念、遠(yuǎn)程控制軟件的發(fā)展前景以及它與黑客和木馬程序區(qū)別;其次介紹了遠(yuǎn)程控制軟件實(shí)現(xiàn)所

12、依靠的網(wǎng)絡(luò)協(xié)議、Socket編程的基本概念和Windows消息系統(tǒng);最后講解了利用VS2008編寫一個(gè)完整的遠(yuǎn)程控制軟件,包括客戶端程序、被控制端程序的實(shí)現(xiàn)過程。此次設(shè)計(jì)的遠(yuǎn)程監(jiān)控系統(tǒng)基于VS環(huán)境,采用C++語言編寫。其設(shè)計(jì)思路為:通過局域網(wǎng)內(nèi)地址掃描被控端的IP地址并與之連接;連接被控端的注冊(cè)表項(xiàng)實(shí)現(xiàn)遠(yuǎn)程開/關(guān)機(jī)、控制被控端鍵盤及鼠標(biāo),實(shí)現(xiàn)遠(yuǎn)程協(xié)助功能;通過網(wǎng)絡(luò)傳輸機(jī)制,實(shí)現(xiàn)文件上傳以及下載的功能(例如:管理日志的上傳下載);對(duì)被控端

13、屏幕的獲取;與被控端信息的傳遞。其中要解決的幾個(gè)關(guān)鍵性的技術(shù)問題:1)采用多線程技術(shù)實(shí)現(xiàn)多客戶端服務(wù);2)將屏幕劃分成網(wǎng)格狀進(jìn)行圖片的傳輸,并以網(wǎng)格為單位刷新屏幕,屆時(shí)僅需要將有更新的屏幕網(wǎng)格發(fā)送到客戶端即可,以增加傳輸速度。</p><p>  關(guān)鍵詞:遠(yuǎn)程控制;VS2008;網(wǎng)絡(luò)協(xié)議;多線程;客戶端;服務(wù)器端</p><p>  Network Remote Monitoring an

14、d Management System</p><p>  Design and Implementation of Scan and Remote Control Module</p><p><b>  Abstract</b></p><p>  With the rapid development of network technolo

15、gy, increasing network coverage in people's lives has proved much convenience. When network’s status promote in people's lives, what to bring is more attention has payed to network security and management. One we

16、ll known subject in these days is network remote control and management system refered to this paper,this paper will provide some ideas for solving network management which distance limit.</p><p>  This pape

17、r has analysised and studied deeply about remote control and issue of remote control software coding. Firstly,paper will describe the concept of the remote control and its future development,then distinguish remote contr

18、ol software and hackers and Trojan program;secondly,paper will introduce the basic concept of Socket coding and Windows information system and net work protocols which remote control software depends on; finally,paper wi

19、ll explain how to use VS2008 to write a complete re</p><p>  Key word: Remote Control;VS2008;Network protocol;Multithread;Client;Server</p><p><b>  1 前 言</b></p><p>  1.

20、1 網(wǎng)絡(luò)遠(yuǎn)程監(jiān)控系統(tǒng)的研究意義</p><p>  不夸張的說,網(wǎng)絡(luò)已經(jīng)深入人們生活的各個(gè)方面。無論是工作學(xué)習(xí),還是軍事科學(xué),總是離不開網(wǎng)絡(luò)的基礎(chǔ)。網(wǎng)絡(luò)技術(shù)的迅速發(fā)展不但帶來了網(wǎng)絡(luò)應(yīng)用的擴(kuò)大,也帶來了網(wǎng)絡(luò)管理的困難。地域的限制,平臺(tái)的跨越,都增加了管理員對(duì)網(wǎng)絡(luò)的管理難度。為了解決這個(gè)問題,需要提出一個(gè)能獨(dú)立獲取局域網(wǎng)內(nèi)其他計(jì)算機(jī)信息并能遠(yuǎn)程監(jiān)控和管理的解決方案,在將來的研究中,跨平臺(tái)的管理系統(tǒng)能更靈活的解決這一難

21、題。</p><p>  網(wǎng)絡(luò)管理的必要性更集中的體現(xiàn)在大型的企業(yè)網(wǎng)絡(luò)中。如何使網(wǎng)絡(luò)資源利用最大化是每個(gè)企業(yè)必須考慮的問題。 采取集中的管理方案能更簡(jiǎn)潔,更有效的避免網(wǎng)絡(luò)資源的浪費(fèi)。如資源集中以便節(jié)省到外網(wǎng)下載的時(shí)間,又如統(tǒng)一管理局域網(wǎng)內(nèi)計(jì)算機(jī)的網(wǎng)絡(luò)流向控制工作時(shí)間內(nèi)的無意義網(wǎng)絡(luò)行為。這樣的管理模式對(duì)于精簡(jiǎn)資源和提高企業(yè)的運(yùn)營效率是十分重要的。</p><p>  概括起來,無論是從技術(shù)方

22、面來說還是從效益提升方面來說,網(wǎng)絡(luò)的監(jiān)控與管理的必然性已經(jīng)無可置疑,所以設(shè)計(jì)一個(gè)有效而靈活的網(wǎng)絡(luò)監(jiān)控系統(tǒng)是十分有意義的課題。</p><p>  1.2 網(wǎng)絡(luò)遠(yuǎn)程監(jiān)控系統(tǒng)的技術(shù)現(xiàn)狀</p><p>  網(wǎng)絡(luò)遠(yuǎn)程監(jiān)控系統(tǒng)可以使網(wǎng)絡(luò)管理員處于獨(dú)立的地位統(tǒng)一的管理局域網(wǎng)內(nèi)的更多計(jì)算機(jī),管理員在局域網(wǎng)的服務(wù)器(主控端)連接局域網(wǎng)內(nèi)的主機(jī)(被控端),通過網(wǎng)絡(luò)協(xié)議傳輸命令和文件;通過被控端上運(yùn)行的監(jiān)控

23、程序?qū)崟r(shí)傳送被控端的各種信息;通過對(duì)整個(gè)局域網(wǎng)的掃描限制非法包的傳輸,對(duì)整個(gè)網(wǎng)絡(luò)的狀況和性能有了完整而且實(shí)時(shí)的了解,使網(wǎng)絡(luò)管理員能及時(shí)發(fā)現(xiàn)問題的出現(xiàn),并且及時(shí)解決。傳統(tǒng)的遠(yuǎn)程監(jiā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)程控制。</p>&

24、lt;p>  1.3 跨平臺(tái)的網(wǎng)絡(luò)遠(yuǎn)程監(jiān)控系統(tǒng)的前景</p><p>  由于各種操作系統(tǒng)和各種形式的終端機(jī)的技術(shù)成熟,跨平臺(tái)的遠(yuǎn)程網(wǎng)絡(luò)監(jiān)控系統(tǒng)也應(yīng)該跟上時(shí)代的步伐。它的靈活性是以往的網(wǎng)絡(luò)遠(yuǎn)程監(jiān)控系統(tǒng)不能比擬的,這使網(wǎng)絡(luò)的遠(yuǎn)程管理人群從專業(yè)的網(wǎng)絡(luò)管理員擴(kuò)大到一般的網(wǎng)絡(luò)使用者,這能更深遠(yuǎn)的影響網(wǎng)絡(luò)的適用范圍,使網(wǎng)絡(luò)更深入人們的生活中,推動(dòng)網(wǎng)絡(luò)的產(chǎn)品和網(wǎng)絡(luò)技術(shù)的快速發(fā)展。</p><p>

25、;<b>  2 系統(tǒng)分析與設(shè)計(jì)</b></p><p><b>  2.1 需求分析</b></p><p>  出于對(duì)一套有效全面的遠(yuǎn)程網(wǎng)絡(luò)監(jiān)控及管理系統(tǒng)方案的需求,這次的課題實(shí)現(xiàn)的系統(tǒng)應(yīng)實(shí)現(xiàn)以下功能:</p><p>  1)為保證系統(tǒng)安全,及時(shí)發(fā)現(xiàn)并處理系統(tǒng)漏洞,需要對(duì)遠(yuǎn)程計(jì)算機(jī)進(jìn)行端口掃描和漏洞掃描;</p

26、><p>  2)為保證被控端的實(shí)時(shí)監(jiān)控,需要自動(dòng)跟蹤局域網(wǎng)內(nèi)屏幕變化,獲取被控端的被控情況,以做出及時(shí)處理;</p><p>  3)為實(shí)時(shí)管理被控端,需要獲取目標(biāo)系統(tǒng)信息:包括計(jì)算機(jī)名、注冊(cè)公司、當(dāng)前用戶、系統(tǒng)路徑、操作系統(tǒng)版本、當(dāng)前顯示分辨率、物理及邏輯磁盤信息等多項(xiàng)系統(tǒng)數(shù)據(jù),以便出現(xiàn)情況時(shí)及時(shí)處理;</p><p>  4)為提高對(duì)被控端的控制,防止錯(cuò)誤操作和非

27、法操作,需要限制被控端系統(tǒng)功能:包括遠(yuǎn)程關(guān)機(jī)、遠(yuǎn)程重啟計(jì)算機(jī)、鎖定鼠標(biāo)、鎖定系統(tǒng)熱鍵及鎖定注冊(cè)表等多項(xiàng)功能限制;</p><p>  5)為對(duì)遠(yuǎn)程系統(tǒng)的管理配置的保存以及分析遠(yuǎn)程系統(tǒng)日志,需要遠(yuǎn)程文件操作:包括創(chuàng)建、上傳、下載、復(fù)制、刪除文件或目錄、文件壓縮、快速瀏覽文本文件、遠(yuǎn)程打開文件;</p><p>  6)為增強(qiáng)網(wǎng)絡(luò)安全,需要進(jìn)行網(wǎng)絡(luò)流量統(tǒng)計(jì)與分析;</p><

28、;p><b>  2.2 系統(tǒng)設(shè)計(jì)</b></p><p>  2.2.1 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)</p><p>  本系統(tǒng)采用服務(wù)器/客戶機(jī)結(jié)構(gòu),主控端與被控端采用TCP協(xié)議進(jìn)行多線程的網(wǎng)絡(luò)通信。被控端在2013號(hào)端口監(jiān)聽,主控端在2013端口掃描。主控端主要實(shí)現(xiàn)網(wǎng)絡(luò)掃描,發(fā)送指令,顯示被控端信息,局域網(wǎng)流量分析與統(tǒng)計(jì)功能。被控端主要實(shí)現(xiàn)開機(jī)運(yùn)行,接受指令,采集本地信

29、息,傳送本地信息功能。</p><p>  圖2-1:系統(tǒng)結(jié)構(gòu)圖</p><p>  2.2.2 系統(tǒng)功能設(shè)計(jì)</p><p>  根據(jù)系統(tǒng)需求將系統(tǒng)劃分成六個(gè)模塊,其功能結(jié)構(gòu)及流程設(shè)計(jì)如圖所示:</p><p>  圖2-2:系統(tǒng)功能結(jié)構(gòu)圖</p><p>  本文完成的控制管理模塊實(shí)現(xiàn)了其中三個(gè)功能(上圖中黃色部分

30、):端口掃描和漏洞掃描;獲取目標(biāo)系統(tǒng)信息:包括計(jì)算機(jī)名、注冊(cè)公司、當(dāng)前用戶、系統(tǒng)路徑、操作系統(tǒng)版本、當(dāng)前顯示分辨率、物理及邏輯磁盤信息等多項(xiàng)系統(tǒng)數(shù)據(jù);包括創(chuàng)建、上傳、下載、復(fù)制、刪除文件或目錄、文件壓縮、快速瀏覽文本文件、遠(yuǎn)程打開文件;流量分析,同步桌面。</p><p><b>  3 遠(yuǎn)程控制概述</b></p><p>  3.1 遠(yuǎn)程控制的概念</p&g

31、t;<p>  遠(yuǎn)程控制軟件歷經(jīng)幾代的變遷,它們的目的起初是為了讓計(jì)算機(jī)用戶在離開固定的房間時(shí)能夠通過其他計(jì)算機(jī)訪問自己計(jì)算機(jī)中的信息,甚至可以訪問企業(yè)網(wǎng)絡(luò)資源。今天,遠(yuǎn)程控制已經(jīng)被有效的作為超越地理限制的管理工具在各方面發(fā)揮了有力的其優(yōu)勢(shì)。通過遠(yuǎn)程控制,管理者可以進(jìn)行遠(yuǎn)程監(jiān)控和數(shù)據(jù)維護(hù),大大的提高了工作效率,減少了資源的浪費(fèi)。</p><p>  遠(yuǎn)程控制軟件實(shí)際上是一種客戶機(jī)/服務(wù)器程序,服務(wù)器

32、程序安裝在被控制端計(jì)算機(jī),客戶端則安裝在控制端。在客戶端和服務(wù)器端都安裝成功之后,客戶端在網(wǎng)絡(luò)上搜索已經(jīng)安裝了服務(wù)器的遠(yuǎn)程計(jì)算機(jī);然后,客戶端通過發(fā)送獲得服務(wù)器端口的連接指令,使兩臺(tái)PC建立起連接,此時(shí)就能憑借TCP/IP協(xié)議為載體進(jìn)行遠(yuǎn)程控制。</p><p>  遠(yuǎn)程控制的原理:在本機(jī)上啟動(dòng)的程序,擁有與使用者(客戶端)相同的權(quán)限。因此,在運(yùn)行服務(wù)器程序后,就可以通過相應(yīng)的客戶端程序進(jìn)行主機(jī)的控制了。<

33、/p><p>  3.1.1 遠(yuǎn)程控制的原理 </p><p>  遠(yuǎn)程控制軟件通常分為兩部分進(jìn)行設(shè)計(jì):一部分是客戶端程序(Client),另一部分是服務(wù)器端程序(Server)。使用前需要將客戶端程序安裝到主控端計(jì)算機(jī)上,將服務(wù)器端程序安裝到被控端計(jì)算機(jī)上。控制的過程為:先在主控端計(jì)算機(jī)上運(yùn)行客戶端程序,向被控端計(jì)算機(jī)中的服務(wù)器端程序發(fā)出請(qǐng)求,然后兩端建立起遠(yuǎn)程連接,通過這個(gè)連接使用各種遠(yuǎn)程

34、控制功能發(fā)送遠(yuǎn)程控制命令,就能使被控端通過運(yùn)行指定程序達(dá)到控制的目的。 </p><p>  遠(yuǎn)程控制軟件在兩臺(tái)計(jì)算機(jī)之間建立起一條獨(dú)立的鏈路,控制端可以通過鏈路向服務(wù)端發(fā)送指令,然后服務(wù)端響應(yīng)請(qǐng)求并完成某些特定操作。此時(shí),控制端只進(jìn)行發(fā)送指令和顯示遠(yuǎn)程計(jì)算機(jī)執(zhí)行程序結(jié)果的操作,而運(yùn)行程序所需的系統(tǒng)資源均由被控?cái)嘤?jì)算機(jī)提供。 </p><p>  為了使用的方便,某些遠(yuǎn)程控制軟件使用了We

35、b技術(shù),主控端可通過IE瀏覽器運(yùn)行位于服務(wù)器端中的主控端程序來實(shí)現(xiàn)遠(yuǎn)程控制。 </p><p>  通過遠(yuǎn)程控制軟件,我們可以進(jìn)行多種遠(yuǎn)程操作,如遠(yuǎn)程進(jìn)行鼠標(biāo),鍵盤,注冊(cè)表等系統(tǒng)項(xiàng)目進(jìn)行操作,文件操作,截屏操作等等,甚至能通過基礎(chǔ)的系統(tǒng)操作進(jìn)行硬件操作。 </p><p>  3.1.2 遠(yuǎn)程控制的實(shí)現(xiàn) </p><p>  進(jìn)行遠(yuǎn)程控制的首要條件是主控電腦和被控電

36、腦通過局域網(wǎng)、廣域網(wǎng)或Internet直接或者間接的相連。其次要需要約定所使用的網(wǎng)絡(luò)協(xié)議,多數(shù)情況下遠(yuǎn)程控制軟件使用TCP/IP協(xié)議進(jìn)行通信,也有部分軟件可使用NetBIOS、SPX協(xié)議,但使用這類協(xié)議無法在廣域網(wǎng)及Internet上實(shí)現(xiàn)遠(yuǎn)程控制。另外,部分軟件要求遠(yuǎn)程控制的雙方擁有合法的IP地址,并且需提供被控端確切的IP地址,這樣就使得要對(duì)位于防火墻后的電腦實(shí)施遠(yuǎn)程控制變得十分困難,不過目前已經(jīng)出現(xiàn)了能穿透防火墻的遠(yuǎn)程控制軟件。 &

37、lt;/p><p>  3.1.3 遠(yuǎn)程控制的發(fā)展前景 </p><p>  遠(yuǎn)程控制在眾多的領(lǐng)域里有著非常廣泛的應(yīng)用,如遠(yuǎn)程教育、遠(yuǎn)程辦公、遠(yuǎn)程IT維護(hù)、遠(yuǎn)程監(jiān)控等等。 </p><p><b>  1)遠(yuǎn)程教育 </b></p><p>  遠(yuǎn)程控制可以用于對(duì)遠(yuǎn)程的用戶和員工進(jìn)行教育活動(dòng)。通過計(jì)算機(jī)的遠(yuǎn)程協(xié)助功能,實(shí)時(shí)的

38、向?qū)Ψ秸故緦?duì)計(jì)算機(jī)的相應(yīng)操作,相對(duì)于單純的講課和聽課更為生動(dòng)具體,提高了學(xué)習(xí)效率。同時(shí)遠(yuǎn)程教育可以節(jié)省培訓(xùn)費(fèi)用,創(chuàng)造更多的培訓(xùn)機(jī)會(huì)。</p><p><b>  2)遠(yuǎn)程辦公 </b></p><p>  遠(yuǎn)程控制還可讓你在任何地點(diǎn)連接自己的工作電腦,使用其中的數(shù)據(jù)與應(yīng)用程序,訪問網(wǎng)絡(luò)資源、使用與其連接的打印機(jī)等外設(shè);它還可用于公司同事之間互相協(xié)同,完成一項(xiàng)共同的工作

39、。 </p><p><b>  3)遠(yuǎn)程IT維護(hù) </b></p><p>  通過遠(yuǎn)程的IT維護(hù)對(duì)于IT服務(wù)供應(yīng)商來說是一項(xiàng)節(jié)約大量成本的工作,遠(yuǎn)程IT維護(hù)能讓工程師們足不出戶,對(duì)客戶的計(jì)算機(jī)進(jìn)行現(xiàn)場(chǎng)式的檢測(cè),提高了維護(hù)成功率以及時(shí)間效率,更不需要提大量的交通成本。</p><p><b>  4)遠(yuǎn)程監(jiān)控 </b>&

40、lt;/p><p>  企業(yè)管理隨著信息化的發(fā)展,員工在工作時(shí)間內(nèi)工作效率能通過遠(yuǎn)程監(jiān)控實(shí)現(xiàn)提高。遠(yuǎn)程監(jiān)控工作計(jì)算機(jī)的屏幕,督促員工在工作時(shí)間內(nèi)有效的利用計(jì)算機(jī)資源進(jìn)行工作,而不是進(jìn)行聊天,玩游戲等娛樂;甚至可以通過記錄鍵盤鼠標(biāo)等操作,監(jiān)控內(nèi)部信息資源的安全。</p><p>  3.2 遠(yuǎn)程控制、木馬、病毒與黑客程序</p><p>  遠(yuǎn)程控制軟件省卻了管理者的交通

41、時(shí)間和費(fèi)用,給管理工作帶來了十分大的便利,但從某種角度來說,它也有其漏洞所在。例如它提供的監(jiān)聽功能,如果使用不當(dāng)?shù)脑?,就?huì)出現(xiàn)很多信息安全問題。</p><p><b>  1)遠(yuǎn)程控制與病毒</b></p><p>  計(jì)算機(jī)病毒是能通過某種途徑潛伏在計(jì)算機(jī)存儲(chǔ)介質(zhì)或程序里,當(dāng)達(dá)到某種條件時(shí)即被激活的具有對(duì)計(jì)算機(jī)資源進(jìn)行破壞作用的一種程序或指令集合。計(jì)算機(jī)病毒一般具

42、有以下幾個(gè)特點(diǎn):</p><p> ?、倨茐男浴2《緦?duì)于計(jì)算機(jī)各個(gè)部分都有可能進(jìn)行入侵以及破壞。</p><p>  ②隱蔽性。病毒程序大多夾在正常程序之中,很難被發(fā)現(xiàn)。</p><p> ?、蹪摲?。病毒入侵后,能在相當(dāng)一段時(shí)間內(nèi)處于靜止?fàn)顟B(tài),一旦觸發(fā)某些條件,便能夠立即激活,進(jìn)行破壞。</p><p> ?、軅魅拘?。病毒能夠自我復(fù)制并散播

43、,造成二次甚至多次的破壞。</p><p>  從計(jì)算機(jī)病毒的定義和特征中可以看出,遠(yuǎn)程控制軟件與病毒的區(qū)別是十分明顯的。最基本的區(qū)別就在于病毒有很強(qiáng)的傳染性,而遠(yuǎn)程控制軟件沒有。</p><p><b>  2)遠(yuǎn)程控制與黑客</b></p><p>  “黑客”一詞來源于英語單詞hack,本指“手法巧妙,技術(shù)高明的惡作劇”。</p&g

44、t;<p>  今天,從最普遍的意義上來說,“黑客”意味著那些未經(jīng)許非法進(jìn)入他人計(jì)算機(jī)系統(tǒng)的網(wǎng)絡(luò)犯罪。他們或修改網(wǎng)頁搞惡作劇或散步流言進(jìn)行恐嚇;或破壞系統(tǒng)程序,施放病毒使系統(tǒng)陷入癱瘓;或竊取政治、軍事與商業(yè)機(jī)密;或進(jìn)行電子郵件騷擾;或轉(zhuǎn)移資金帳戶,竊取錢財(cái),作案方式多樣,花樣翻新,令人防不勝防。</p><p>  由此可見,遠(yuǎn)程控制與黑客的區(qū)別是較大的。黑客通常利用網(wǎng)絡(luò)和操作系統(tǒng)的漏洞進(jìn)行入侵和破

45、壞,而遠(yuǎn)程控制軟件的一大任務(wù)就是要保護(hù)控制端計(jì)算機(jī)不收非授權(quán)用戶的訪問。</p><p><b>  3)遠(yuǎn)程控制與木馬</b></p><p>  木馬是一種能給外來計(jì)算機(jī)提供本地計(jì)算機(jī)“后門”的程序,它通過網(wǎng)絡(luò)和TCP/IP協(xié)議進(jìn)行遠(yuǎn)程連接。由于它像間諜一樣潛入用戶的電腦,為其他人的攻擊打開后門,與戰(zhàn)爭(zhēng)中的“木馬”戰(zhàn)術(shù)十分相似,因而得名木馬程序。</p>

46、;<p>  木馬和遠(yuǎn)程控制軟件的最大區(qū)別在于木馬對(duì)于用戶的欺瞞性,而遠(yuǎn)程控制軟件是用戶許可的。</p><p>  遠(yuǎn)程控制雖然可以方便地操縱遠(yuǎn)程計(jì)算機(jī),但也可能會(huì)帶來一定安全隱患。遠(yuǎn)程計(jì)算機(jī)在成為服務(wù)端后,如果IP地址泄漏,那么就有可能被人趁虛而入。雖然遠(yuǎn)程控制軟件不像木馬一樣是為了個(gè)人牟利而誕生的,但是安全策略不當(dāng),便有可能產(chǎn)生更嚴(yán)重的后果。</p><p><b

47、>  4 網(wǎng)絡(luò)及應(yīng)用協(xié)議</b></p><p>  進(jìn)行遠(yuǎn)程控制的前提條件是具有計(jì)算機(jī)網(wǎng)絡(luò)。一般遠(yuǎn)程控制使用的是TCP/IP協(xié)議,因?yàn)門CP/IP協(xié)議是整個(gè)計(jì)算機(jī)網(wǎng)絡(luò)的靈魂。</p><p>  4.1 計(jì)算機(jī)網(wǎng)絡(luò)的基本概念</p><p>  4.1.1 計(jì)算機(jī)網(wǎng)絡(luò)的定義</p><p>  計(jì)算機(jī)網(wǎng)絡(luò)指的是通過有線、無

48、線或其他通信介質(zhì)相互直接或者間接相連的計(jì)算設(shè)備群體。由于數(shù)以萬計(jì)的計(jì)算設(shè)備相連所組成的一個(gè)巨大的信息網(wǎng)絡(luò),就是我們一般認(rèn)識(shí)中的計(jì)算機(jī)網(wǎng)絡(luò)。計(jì)算機(jī)網(wǎng)絡(luò)中的計(jì)算設(shè)備通過各種服務(wù),協(xié)議達(dá)到了相互通信的目的,其中包括各種傳輸設(shè)備以及傳輸方式,這樣一種服務(wù),協(xié)議以及傳輸方式的集合,構(gòu)成了功能上的計(jì)算機(jī)網(wǎng)絡(luò)。</p><p>  在這樣的功能支持以及結(jié)構(gòu)組成下,一個(gè)資源共享的系統(tǒng)就產(chǎn)生了,這就是完整的計(jì)算機(jī)網(wǎng)絡(luò)。</

49、p><p>  4.1.2 計(jì)算機(jī)網(wǎng)絡(luò)的基本功能</p><p><b>  1)數(shù)據(jù)通信</b></p><p>  計(jì)算機(jī)聯(lián)網(wǎng)之后,便可以相互傳遞數(shù)據(jù)和進(jìn)行通信。通過網(wǎng)絡(luò),各種音頻,視頻,圖片以及文字傳輸?shù)绞澜绺鞯兀鞣N媒體借此讓自己的事業(yè)突飛猛進(jìn)。隨著寬帶網(wǎng)絡(luò)技術(shù)不斷成熟,這些行業(yè)通過計(jì)算機(jī)網(wǎng)絡(luò)將會(huì)提供速度更快,質(zhì)量更優(yōu)和價(jià)格更低廉的服務(wù)。&

50、lt;/p><p><b>  2)資源共享</b></p><p>  這是計(jì)算機(jī)網(wǎng)絡(luò)的主要用途。計(jì)算機(jī)通過一個(gè)相當(dāng)大的局域內(nèi)進(jìn)行聯(lián)網(wǎng),網(wǎng)絡(luò)中各計(jì)算機(jī)的資源原則上都可以共享,這就可以突破地域范圍的限制。</p><p>  3) 提高系統(tǒng)的可靠性</p><p>  計(jì)算機(jī)網(wǎng)絡(luò)采用分布式控制方式可以使資源分布到各個(gè)不同的計(jì)

51、算機(jī)中,這樣如果發(fā)生某臺(tái)計(jì)算機(jī)故障,就可以通過其他路徑進(jìn)行其他計(jì)算機(jī)的資源訪問,這就使得用戶能隨時(shí)訪問到想要的資源。</p><p>  4.1.3 計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)</p><p>  計(jì)算機(jī)網(wǎng)絡(luò)在提供信息交互服務(wù)之前必須達(dá)到以下條件:</p><p>  1)通信雙方之間必須有可用的通信通道或者接收信息的地址;</p><p>  2)

52、接受信息一方必須確認(rèn)做好接收數(shù)據(jù)的準(zhǔn)備;</p><p>  3)通信雙方必須對(duì)信息交流的格式有統(tǒng)一的約定;</p><p>  4)通信雙方對(duì)于信息傳輸中可能出現(xiàn)的錯(cuò)誤的必須有相應(yīng)的預(yù)備處理機(jī)制。</p><p>  其中有一個(gè)重要的概念——協(xié)議。協(xié)議是為了在不同系統(tǒng)中的實(shí)體間進(jìn)行通信而使用的。交流什么信息,如何交換,用何種語言溝通,何時(shí)通信,這在參與通信的實(shí)

53、體間必須達(dá)成相互都能接受的協(xié)定。這些協(xié)定就是規(guī)程或協(xié)議。協(xié)議往往被制定成一系列規(guī)則,用來管制兩個(gè)實(shí)體間的數(shù)據(jù)交換。協(xié)議中的關(guān)鍵因素包括:</p><p>  1)語法,包括數(shù)據(jù)格式和信號(hào)電平等;</p><p>  2)語議,包括協(xié)調(diào)用的控制信息和差錯(cuò)管理;</p><p>  3)規(guī)則,包括時(shí)間控制,速率匹配和定時(shí)。</p><p>  在

54、介紹了協(xié)議之后,再引入?yún)f(xié)議體系結(jié)構(gòu)的概念。</p><p>  4.1.4 OSI體系結(jié)構(gòu)</p><p>  開放式系統(tǒng)互聯(lián)模型(OSI)是作為計(jì)算機(jī)通信體系結(jié)構(gòu)的模型由國際標(biāo)準(zhǔn)化組織制訂并構(gòu)架的開發(fā)協(xié)議標(biāo)準(zhǔn)。</p><p>  OSI模型是由應(yīng)用層、表示層、會(huì)話層、傳輸層、數(shù)據(jù)鏈路層和物理層七層組成。盡管在OSI的框架內(nèi)開發(fā)了很多有用的協(xié)議,但全面的七層模型并

55、沒有真正流行起來,而TCP/IP體系結(jié)構(gòu)在實(shí)現(xiàn)的網(wǎng)絡(luò)世界中仍占據(jù)著支配地位。</p><p>  OSI模型各層次的功能如下所述。</p><p>  物理層:保證信息通過物理介質(zhì)傳輸;規(guī)范物理介質(zhì)的機(jī)械、電氣等特性。</p><p>  數(shù)據(jù)鏈路層:為信息在物理鏈路傳輸提供可靠的保證,并提供數(shù)據(jù)的同步、差錯(cuò)、流量控制。 </p><p> 

56、 網(wǎng)絡(luò)層:為信息在傳播路徑選擇上提供更有效的路徑選擇方法,負(fù)責(zé)建立、維持和結(jié)束網(wǎng)絡(luò)連接。</p><p>  傳輸層:提供可靠的端點(diǎn)間的數(shù)據(jù)傳輸,并提供端點(diǎn)間的錯(cuò)誤校正和流量控制。</p><p>  會(huì)話層:提供數(shù)據(jù)交換的定界和同步功能,包括建立檢查點(diǎn)和恢復(fù)方案的方法。</p><p>  表示層:使通信的應(yīng)用程序能夠解釋交換數(shù)據(jù)的含義,它提供的服務(wù)包括數(shù)據(jù)壓縮、

57、加密、描述。</p><p>  應(yīng)用層:一個(gè)端系統(tǒng)中的應(yīng)用程序使用該層協(xié)議與另一個(gè)端系統(tǒng)的應(yīng)用程序交換分組信息。各層之間的通信如圖4-1所示:</p><p><b>  圖4-1</b></p><p>  4.2 TCP/IP協(xié)議分析</p><p>  TCP/IP起源于20世紀(jì)60年代末,是美國政府資助的一個(gè)分

58、組交換網(wǎng)絡(luò)研究項(xiàng)目,現(xiàn)在已經(jīng)發(fā)展成為計(jì)算機(jī)之間最常用的網(wǎng)絡(luò)協(xié)議。它是一個(gè)開源的協(xié)議系統(tǒng),由于它的開源性,是它的應(yīng)用日益廣泛,逐漸成為“全球互聯(lián)網(wǎng)”的基礎(chǔ)。</p><p>  TCP/IP協(xié)議并不完全符合OSI的七層參考模型。傳統(tǒng)的開放式系統(tǒng)互連參考模型,是一種通信協(xié)議的七層抽象的參考模型,其中每一層執(zhí)行某一特定任務(wù)。而TCP/IP通訊協(xié)議采用了四層的層級(jí)結(jié)構(gòu),每一層都呼叫它的下一層所提供的網(wǎng)絡(luò)來完成自己的需求。

59、這四層分別為:</p><p>  1)鏈路層:提供最基礎(chǔ)的信息傳送介質(zhì)保證,包括各種物理接口。</p><p>  2)網(wǎng)絡(luò)層:它有時(shí)也稱做互連網(wǎng)絡(luò)層,處理分組從一臺(tái)主機(jī)移動(dòng)到另一臺(tái)主機(jī),例如分組的路由選擇。在TCP/IP協(xié)議組件中,網(wǎng)絡(luò)協(xié)議包括IP協(xié)議、ICMP協(xié)議以及IGMP協(xié)議。</p><p>  3)傳輸層:它主要為兩臺(tái)主機(jī)上的應(yīng)用程序提供端到端的通信。

60、在TCP/IP協(xié)議組件中,有兩個(gè)互不相同的傳輸協(xié)議:TCP和UDP。</p><p>  TCP為兩臺(tái)主機(jī)提供可靠的數(shù)據(jù)通信。它通過“三次握手”建立連接并盡力確保每一次連接的成功。由于傳輸層提出各種糾錯(cuò)和重發(fā)機(jī)制,提供了高可靠性的端到端的通信,因此應(yīng)用層可以忽略所有這些細(xì)節(jié)。</p><p>  另一方面,UDP為應(yīng)用層提供一種非常簡(jiǎn)單的服務(wù)。它的分組傳輸不對(duì)數(shù)據(jù)的發(fā)送作任何的保障,也不需

61、要進(jìn)行事先的建立確認(rèn)。任何必須的可靠性必須由應(yīng)用層來提供。</p><p>  4)應(yīng)用層:應(yīng)用層負(fù)責(zé)處理各種應(yīng)用程序在不同端系統(tǒng)的通信。常用的應(yīng)用程序協(xié)議如下,它們分別運(yùn)行在TCP/UDP上:</p><p>  ①HTTP超文本傳輸協(xié)議。</p><p> ?、贔TP文件傳輸協(xié)議。</p><p> ?、跾MTP用電子郵件的簡(jiǎn)單郵件傳輸協(xié)

62、議。</p><p> ?、躍NMP簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議。</p><p>  TCP/IP協(xié)議與OSI其層模型的對(duì)照如圖4-2所示:</p><p><b>  圖4-2</b></p><p>  5 遠(yuǎn)程控制的實(shí)現(xiàn)基礎(chǔ)</p><p>  在制作遠(yuǎn)程控制軟件當(dāng)中,主要使用技術(shù)為網(wǎng)絡(luò)編程技術(shù)和系統(tǒng)

63、編程技術(shù)。</p><p>  5.1 Socket編程基礎(chǔ)</p><p><b>  1)網(wǎng)間進(jìn)程通信</b></p><p>  進(jìn)程通信的概念最初來源于單機(jī)系統(tǒng)。為了使本機(jī)中每個(gè)進(jìn)程根據(jù)自己獨(dú)立的地址范圍規(guī)則而協(xié)調(diào)的工作,操作系統(tǒng)提供了相當(dāng)多的應(yīng)對(duì)方案,如UNIX BSD中的管道(pipe)、命名管道(named pipe)和軟中斷信

64、號(hào)(signal),UNIX system V的消息(message)、共享存儲(chǔ)區(qū)(shared memory)和信號(hào)量(semaphore)等。</p><p>  對(duì)于網(wǎng)間進(jìn)程通信要解決的是不同主機(jī)進(jìn)程間的相互通信,如何在不同主機(jī)中的進(jìn)程中找到指定的進(jìn)程呢?這就涉及標(biāo)識(shí)網(wǎng)間進(jìn)程的問題了。本機(jī)中,可以用進(jìn)程號(hào)加以區(qū)分,但在網(wǎng)際環(huán)境下,對(duì)于本機(jī)獨(dú)立的進(jìn)程號(hào)卻不能在網(wǎng)絡(luò)中唯一標(biāo)識(shí)該進(jìn)程。其次,操作系統(tǒng)中不同協(xié)議的工

65、作方式不同,地址格式也不同。因此,為了防止協(xié)議工作混亂,需要使用特殊的標(biāo)識(shí)方法來鑒定每一個(gè)協(xié)議。為了解決上述問題,TCP/IP協(xié)議引入了下列幾個(gè)概念。</p><p><b> ?、俣丝凇?lt;/b></p><p>  某意義上講,主機(jī)地址并不是網(wǎng)絡(luò)通信的最終地址,為了正確運(yùn)行應(yīng)用程序,必須找到正確的進(jìn)程地址。為此,TCP/IP協(xié)議提出了協(xié)議端口(protocol po

66、rt,簡(jiǎn)稱端口)的概念,用于標(biāo)識(shí)通信的進(jìn)程。</p><p>  類似于文件描述符,每個(gè)端口都擁有一個(gè)叫端口號(hào)(port number)的整數(shù)型標(biāo)識(shí)符,用于區(qū)別不同端口。應(yīng)用程序可以使用編號(hào)從1到655535的任何一個(gè)端口好,并將其分配給端口。通常分成以下幾個(gè)范圍段:</p><p>  端口 0,1~255,某些特定服務(wù)的保留地址,如FTP、遠(yuǎn)程網(wǎng)及FINGER等服務(wù)。</p>

67、;<p>  端口 256~1023,一般服務(wù)保留地址,如Routing function(路由函數(shù))。</p><p>  端口 1024~4999,客戶自由使用,客戶端套接字通常會(huì)使用這個(gè)范圍段的端口。</p><p>  端口 5000~655535,預(yù)定給服務(wù)器告知用戶的端口。</p><p><b> ?、诘刂贰?lt;/b>

68、</p><p>  網(wǎng)絡(luò)環(huán)境復(fù)雜,兩個(gè)進(jìn)程可能由于本機(jī)原因、網(wǎng)絡(luò)原因、路由原因等分離,因此需要三級(jí)尋址:</p><p>  a. 能連接多個(gè)網(wǎng)絡(luò)相連的主機(jī)必須設(shè)置固定的IP;</p><p>  b. 網(wǎng)絡(luò)上每一臺(tái)主機(jī)應(yīng)有其唯一的地址;</p><p>  c. 獨(dú)立的主機(jī)中獨(dú)立的進(jìn)程必須有在本機(jī)的獨(dú)立標(biāo)志。</p><

69、;p>  TCP/IP中使用32位網(wǎng)絡(luò)地址+主機(jī)地址的地址格式;其中TCP和UDP都采取16位端口號(hào)碼標(biāo)識(shí)進(jìn)程。</p><p><b>  ③網(wǎng)絡(luò)字節(jié)順序。</b></p><p>  為了使數(shù)據(jù)準(zhǔn)確性更高,在網(wǎng)絡(luò)協(xié)議中必須規(guī)定網(wǎng)絡(luò)中傳輸?shù)淖止?jié)序列。</p><p><b> ?、苓B接。</b></p>

70、<p>  相互通信的兩個(gè)進(jìn)程間傳輸信息所使用的通道稱為連接。</p><p><b> ?、莅胂嚓P(guān)。</b></p><p>  網(wǎng)絡(luò)中用一個(gè)三元組可以在全局唯一標(biāo)志一個(gè)進(jìn)程:(協(xié)議,本地地址,本地端口號(hào))</p><p>  這樣一個(gè)三元組,叫做一個(gè)半相關(guān)(half-association)。</p><p

71、><b> ?、奕嚓P(guān)。</b></p><p>  一個(gè)完整的網(wǎng)間進(jìn)程通信只能使用兩個(gè)相同的高層協(xié)議進(jìn)行通信。因此一個(gè)完整的網(wǎng)間通信需要一個(gè)五元組來標(biāo)識(shí):(協(xié)議,本地地址,本地端口號(hào),遠(yuǎn)地地址,遠(yuǎn)地端口號(hào))</p><p>  這樣一個(gè)五元組,叫做一個(gè)相關(guān)(association)。</p><p><b>  2) 服務(wù)方式

72、</b></p><p>  在網(wǎng)絡(luò)分層結(jié)構(gòu)中,只能由相鄰層之間交互信息并逐層傳遞,但為了使各層之間相互協(xié)調(diào),靈活分工,需要提出“服務(wù)”的概念?!胺?wù)”下層對(duì)上層提供的一組可執(zhí)行操作集合。下層是服務(wù)提供者,上層是請(qǐng)求服務(wù)的用戶。服務(wù)的表現(xiàn)形式是機(jī)器原語(primitive),能夠直接對(duì)系統(tǒng)進(jìn)行最基本的操作。</p><p>  網(wǎng)絡(luò)層及其以下各層只負(fù)責(zé)PTP通信,并沒有涉及到進(jìn)

73、程。而傳輸層負(fù)責(zé)的是“端到端”通信,這就需要聯(lián)系到進(jìn)程了。為解決網(wǎng)間進(jìn)程通信,解決糾錯(cuò),流量控制,數(shù)據(jù)包順序,擁塞機(jī)制等問題,傳輸層提供不同的服務(wù)方式:面向連接(虛電路)或無連接的服務(wù)。</p><p>  面向連接服務(wù)的概念起源于電話接線模式,即每一次的數(shù)據(jù)傳輸都要通過雙方建立一條連接,使用連接,終止連接的過程,此時(shí)這條連接是一條專有鏈路,其他通信者無法使用。在數(shù)據(jù)傳輸過程中,各數(shù)據(jù)分組不需要標(biāo)記目的地址,只需

74、要設(shè)置一個(gè)標(biāo)識(shí)數(shù)據(jù)包順序的尋列號(hào)。本質(zhì)上,這樣的連接是一個(gè)管道,收發(fā)數(shù)據(jù)不但順序一致,而且內(nèi)容相同。TCP協(xié)議提供面向連接的虛電路。</p><p>  無連接服務(wù)則是啟發(fā)于郵政服務(wù),每個(gè)分組的首部都標(biāo)明目的地址,各分組在系統(tǒng)中各自傳送。無連接服務(wù)由于分組的自由選路和隨機(jī)分發(fā),因此不能保證分組的到達(dá)的先后順序,也不提供糾錯(cuò)機(jī)制,并不能保證傳輸?shù)目煽啃浴DP協(xié)議提供無連接的數(shù)據(jù)報(bào)服務(wù)。</p>&l

75、t;p>  3)客戶/服務(wù)器模式</p><p>  在TCP/IP網(wǎng)絡(luò)應(yīng)用中,通信的兩個(gè)進(jìn)程間相互作用的主要模式是客戶/服務(wù)器模式(Client/Server model),Client向Server發(fā)出請(qǐng)求,Server回復(fù)請(qǐng)求的服務(wù)。C/S模式的建立有兩個(gè)前提條件:首先,計(jì)算機(jī)網(wǎng)絡(luò)在早期是出于硬件資源的過于分散,無法進(jìn)行均等的信息計(jì)算,為了共享資源,漸漸演化成為現(xiàn)在主流的海量資源主機(jī)提供服務(wù),讓缺乏資

76、源的Client請(qǐng)求服務(wù)這種類型的服務(wù)模式。另一方面,由于大多數(shù)的應(yīng)用程序在不同的終端是異步通信,而能相互通信的進(jìn)程間又不能邏輯通信,因此,需要第三方的通信角色為它們提供通信的同步,這就是基于C/S的TCP/IP。</p><p><b>  4)套接字類型</b></p><p>  TCP/IP的socket提供三種不同類型的socket。</p>

77、<p> ?、倭魇教捉幼郑⊿OCK_STREAM)</p><p>  提供面向連接,可靠的傳輸。并提供糾錯(cuò)機(jī)制,查重機(jī)制,以及順序發(fā)送機(jī)制。內(nèi)設(shè)流量控制,避免數(shù)據(jù)流超限;數(shù)據(jù)被看作是字節(jié)流,無長度限制。FTP使用流式套接字。</p><p> ?、跀?shù)據(jù)報(bào)式套接字(SOCK_DGRAM)</p><p>  提供非連接、不可靠的傳輸。數(shù)據(jù)包獨(dú)立發(fā)送,不提供

78、糾錯(cuò)機(jī)制,沒有查重機(jī)制,并不順序接受數(shù)據(jù)包。</p><p> ?、墼际教捉幼郑⊿OCK_RAW)</p><p>  較低層協(xié)議如IP、ICMP能夠直接訪問該接口。常用檢驗(yàn)新設(shè)備和新協(xié)議。</p><p>  5.2 Windows的消息系統(tǒng) </p><p>  在遠(yuǎn)程控制軟件中將涉及大量的windows的系統(tǒng)消息處理和自定義消息的處

79、理。</p><p>  5.2.1 消息的種類</p><p>  應(yīng)用程序的工作就是處理各種基于windows信息的工作,基本的消息類型有:常用的Windows消息、命令和控件通知。</p><p>  1)常用的Windows消息:指以WM_為前綴的那些消息(除WM_COMMAND),如窗口位移消息WM_MOVE、窗口大小調(diào)整消息WM_SIZE,除此之外,程序

80、的運(yùn)行與關(guān)閉、窗口打開與關(guān)閉、鼠標(biāo)鍵的點(diǎn)擊和彈開等等。</p><p>  2)控件通知消息:由編輯框、列表框等控件或子窗日發(fā)給其父窗口的通知消息,消息名為WM_ COMMAND,消息中使用控件通知代碼,以區(qū)分具體的控件通知消息。</p><p>  3)命令消息:命令消息也以WM_ COMMAND為消息名,在消息中包含有命令的標(biāo)識(shí)符(ID),以區(qū)分具體的命令。命令消息的來源是如下兩種用戶

81、接口對(duì)象:</p><p>  菜單:用戶單擊某菜單項(xiàng),生成對(duì)應(yīng)的命令消息。</p><p>  工具欄:用戶按下某工具欄按鈕產(chǎn)生相應(yīng)的命令消息。</p><p>  加速鍵:通過用戶自定義的加速鍵產(chǎn)生相應(yīng)的命令消息。</p><p>  常用的Windows消息以及控件通知消息必須被CWnd類或其派生類直接或者間接的進(jìn)行處理,相比而言,命令

82、消息的處理方式就多得多了,可被窗口類,文檔類或者模版類以及應(yīng)用類處理。</p><p>  5.2.2 MFC中的消息處理</p><p>  MFC為窗口下的消息處理提供了一種框架,使其使用起來比在傳統(tǒng)的Windows程序下做控件消息處理語句更為簡(jiǎn)單。這是由于從CcmdTarge派生的類能夠擁有自己的消息映射。</p><p>  MFC為了提高其復(fù)用性,對(duì)大多數(shù)

83、Windows應(yīng)用程序以及命令提供了默認(rèn)操作。大多數(shù)有默認(rèn)操作的命令同時(shí)也被包含在AppWizard產(chǎn)生的默認(rèn)菜單中。由AppWizard創(chuàng)建菜單的標(biāo)準(zhǔn)命令消息在AFXRES.H中定義,其他的標(biāo)準(zhǔn)命令也由同樣的命名規(guī)則,這個(gè)規(guī)則就是ID_+菜單名+命令名。</p><p>  5.2.3 創(chuàng)建消息映射</p><p>  MFC應(yīng)用程序中對(duì)消息的響應(yīng)采用消息映射,其中包括一張消息與處理函數(shù)

84、相互映射的表以及分析其內(nèi)部應(yīng)用框架的代碼。</p><p>  CCmdTarget類的派生類都能建立消息映射,其內(nèi)容包括如下兩個(gè)方面:</p><p>  在.h文件內(nèi)新增一條宏調(diào)用:DECLARE_MESSAGEsi MAP()</p><p>  通常這行語句寫在類定義的最后。</p><p>  在.cpp文件中新增消息映射表:<

85、;/p><p>  BEGIN-MESSAGE-MAP(類名,父類名)</p><p><b>  …………</b></p><p><b>  消息映射入口項(xiàng)</b></p><p><b>  …………</b></p><p>  END-MESSAGE

86、-MAP()</p><p>  由MFC AppWizard生成的應(yīng)用程序中,所有的類都己經(jīng)包含消息映射。</p><p>  除了某些類(如沒有基類的類或直接從CObject等類派生的類)外,其他許多類都可以由ClassWizard自動(dòng)產(chǎn)生。當(dāng)然,生成的類只是一個(gè)“骨骼”,需要用戶補(bǔ)充“血肉”。盡管只是一個(gè)類的框架,但在其中已經(jīng)加人了消息映射(不過消息映射入口項(xiàng)有待加入)。</p

87、><p>  在類中,消息處理函數(shù)都是類的成員函數(shù)。要對(duì)一個(gè)消息進(jìn)行響應(yīng),就要定義該消息的處理函數(shù)。在類中,添加一個(gè)消息處理函數(shù)包括下面三個(gè)內(nèi)容:</p><p>  1)定義類時(shí),聲明該消息處理成員函數(shù)。</p><p>  2)將消息映射入口項(xiàng)加入類的消息映射表中。</p><p>  3)將消息處理成員函數(shù)的函數(shù)體加入類的實(shí)現(xiàn)中。</

88、p><p>  消息處理函數(shù)的原型前要以關(guān)鍵字afx_msg起始。</p><p>  當(dāng)用ClassWizard將新的消息處理函數(shù)加入到某個(gè)類中時(shí),它會(huì)自動(dòng)添加這三部分內(nèi)容,但僅添加函數(shù)體的框架,具體實(shí)現(xiàn)步驟需要用戶添加。</p><p>  CWnd類中已經(jīng)預(yù)定義了對(duì)標(biāo)準(zhǔn)Windows消息的默認(rèn)處理函數(shù)。這些函數(shù)名之前有一個(gè)“on”,后半部分則是其相應(yīng)的的Windo

89、ws WM消息名。比如, OnPaint()是對(duì)WM_ PAINT消息的處理函數(shù)。這些消息處理函數(shù)有著類似于需要函數(shù)的特性,那就是它的重載。在CWnd的間接或直接派生類中,加入定義了一個(gè)標(biāo)準(zhǔn)的Windows消息的消息處理成員函數(shù),則會(huì)重載相應(yīng)的基類消息處理函數(shù)。這些預(yù)定義的標(biāo)誰Windows消息處理函數(shù),有些沒有參數(shù),有些則帶參數(shù),有些有返回類型,有些則沒有。</p><p>  當(dāng)用Class Wizard加入

90、這兩種類型的消息處理函數(shù)時(shí),它會(huì)提供一個(gè)建議的函數(shù)名,雖然用戶可以更改,但是最好不改。因?yàn)镃lass Wizard是根據(jù)控件通知消息中提供的控件通知代碼或從命令消息中獲得的命令標(biāo)識(shí)符來命名的,因此,就會(huì)很容易通過觀察消息處理函數(shù)名聯(lián)想到它處理的消息。例如,下面的一個(gè)消息處理函數(shù)原型:</p><p>  afx_msg void OnFileOpen();</p><p>  表明該函數(shù)是

91、處理命令標(biāo)識(shí)符為ID_FILE_OPEN的命令消息的。而函數(shù)原型:</p><p>  afx_msg void OnDoubleClickedOK();</p><p>  則是當(dāng)用戶在"OK”按鈕上雙擊鼠標(biāo)左鍵時(shí)要調(diào)用的消息處理函數(shù)。</p><p>  控件通知消息和命令消息的處理函數(shù)既沒有參數(shù),又沒有返回值。</p><p>

92、;  一般應(yīng)用程序中都有文件菜單下新建、打開、保存等菜單項(xiàng),編輯菜單下剪切、復(fù)制、粘貼等菜單項(xiàng)。對(duì)于這些命令的命令標(biāo)識(shí)符,VS中已經(jīng)預(yù)先定義了,用戶可以直接使用。究竟預(yù)定義了哪些命令標(biāo)識(shí)符呢,你可以查看Afxres.h文件。 </p><p>  對(duì)于某些常用的命令,應(yīng)用框架還預(yù)先定義了消息處理函數(shù)。有些消息處理函數(shù)的功能已經(jīng)完善,用戶可以直接使用,而有些只提供了不完整的功能,需要用戶根據(jù)自己的實(shí)際需要補(bǔ)充。

93、</p><p><b>  6 詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)</b></p><p>  6.1 軟件的實(shí)現(xiàn)的前提和功能</p><p>  Visual C++的核心是Microsoft基礎(chǔ)類庫(Microsoft Foundation Class Library,簡(jiǎn)稱MFC),即通常所說的MFC。</p><p>  MFC封裝

94、了Win32軟件開發(fā)工具包中的結(jié)構(gòu)、功能,它為編程者提供了一個(gè)應(yīng)用程序框架,這個(gè)應(yīng)用程序框架為編程者完成很多Windows編程中的例行性工作,如管理窗口、菜單和對(duì)話框,執(zhí)行基本的輸入和輸出、使用集合類來保存數(shù)據(jù)對(duì)象等等。</p><p>  早在1989年,Microsoft的程序員們便開始試圖將C++和面向?qū)ο蟮木幊谈拍顟?yīng)用于Windows編程中,以編寫出一個(gè)可以使Windows編程更加簡(jiǎn)便的應(yīng)用程序框架。他們

95、把這個(gè)應(yīng)用程序框架叫做AFX(Application Framework)。AFX通過精心的規(guī)劃以及重新編碼,提供了Windows API的抽象,創(chuàng)建了新一代的面向?qū)ο驛FX API,但由于對(duì)現(xiàn)有的Windows API不兼容,使得大量的SDK代碼不能重復(fù)利用,因此并不受Windows程序員的歡迎。盡管如此,在Visual C++和MFC環(huán)境下,很多全局函數(shù)、結(jié)構(gòu)和宏的標(biāo)識(shí)符還是加上了AFX的前綴。</p><p&g

96、t;  VS2008在一個(gè)產(chǎn)品中包含了兩個(gè)完整的Windows應(yīng)用程序開發(fā)系統(tǒng)。我們可以選擇只使用Win32 API來開發(fā)C語言Windows程序,并且可以使用許多工具,包括資源編輯器,來使低級(jí)Win32編程變得更加容易。VS2008也包含了ActiveX模板庫(ATL),我們可以用它來為Internet開發(fā)ActiveX控件。</p><p>  6.1.1 軟件實(shí)現(xiàn)的前提</p><p&g

97、t;  本軟件的開發(fā)環(huán)境是在微軟的VS2008的MFC環(huán)境下編譯而成的。設(shè)計(jì)采用的是基于TCP/IP的C/S模型和流式套接字socket。其設(shè)計(jì)原理為:服務(wù)器端和客戶端都建立socket,服務(wù)器端進(jìn)入監(jiān)聽狀態(tài),然后客戶端通過socket發(fā)出連接請(qǐng)求,服務(wù)器端收到請(qǐng)求后,建立一個(gè)新的socket進(jìn)行通信,初始負(fù)責(zé)監(jiān)聽的套接字繼續(xù)監(jiān)聽,如果有其它客戶端發(fā)來的連接請(qǐng)求,則新建一個(gè)socket。一般來說,系統(tǒng)是先啟動(dòng)服務(wù)器端,然后在某一時(shí)刻啟動(dòng)

98、客戶機(jī)并發(fā)出指令使其與服務(wù)器建立連接。服務(wù)器與客戶機(jī)開始都必須建立一個(gè)套接字socket,服務(wù)器端調(diào)用bind()將socket與一個(gè)本地網(wǎng)絡(luò)地址捆綁在一起,再調(diào)用listen()使socket處于監(jiān)聽狀態(tài),同時(shí)規(guī)定它的請(qǐng)求隊(duì)列長度。在此之后服務(wù)器端就可以通過accept()的調(diào)用來接收客戶機(jī)的連接??蛻舳双@取一個(gè)socket之后,可調(diào)用connect()與服務(wù)器建立連接。通過連接,客戶和服務(wù)器之間就可以發(fā)送和接收資料。完成一個(gè)階段的任

99、務(wù)后,雙方調(diào)用closesocket()關(guān)閉socket來結(jié)束這次通信連接。整個(gè)通訊過程的具體流程框圖可大致用下面的流程圖來表示</p><p><b>  圖6-1</b></p><p>  6.1.2 軟件實(shí)現(xiàn)的功能</p><p>  該軟件主要包括控制端程序的實(shí)現(xiàn)、被控制端(服務(wù)器端)程序?qū)崿F(xiàn)。其功能為:</p><

100、;p>  1)查看被控制端的文件目錄清單;</p><p>  2)使被控制端重新啟動(dòng);</p><p>  3)使被控制端關(guān)機(jī);</p><p>  4)直接執(zhí)行任何命令,打開應(yīng)用程序;</p><p>  5)控制被控制端的屏幕,在本地直接操作被控制計(jì)算機(jī)(這是該軟件的最重要的功能)</p><p>  6.

101、2 控制端程序的實(shí)現(xiàn)</p><p>  控制端程序的實(shí)現(xiàn)步驟如下:</p><p>  1)新建一個(gè)項(xiàng)目,選擇“MFC ApWizard(EXE)”,取名為client,選擇“基本對(duì)話”模式。</p><p>  2)按照?qǐng)D6-2的樣式在對(duì)話框上添加一些控件。</p><p><b>  圖6-2:設(shè)計(jì)界面</b>&l

102、t;/p><p>  3)設(shè)置編輯框的屬性:其中“IP地址”對(duì)應(yīng)編輯框的ID取IDC_ADDRESS;“端口”對(duì)應(yīng)編輯框的ID取IDC_PORT;“要發(fā)送的命令”對(duì)應(yīng)編輯框的ID取IDC_EDIT_SEND,選中“Disabled”選項(xiàng);“信息顯示窗口”對(duì)應(yīng)編輯框的ID取IDC_EDIT_READ,設(shè)置其屬性如圖6-3所示。</p><p>  圖6-3:信息顯示窗口屬性設(shè)置</p>

103、;<p>  4)設(shè)置按鈕的屬性:“登陸”按鈕的ID設(shè)為IDC_LOGIN;“注銷”按鈕的ID設(shè)為IDC_LOGOUT,“直接控屏”按鈕的ID設(shè)為IDC_SCREEN,“發(fā)送”按鈕的ID設(shè)為IDC_SEND;“清空”按鈕的ID設(shè)為IDC_CLEAR;“退出”按鈕的ID設(shè)為IDCANCEL。</p><p>  5)利用ClassWizard為這些控件增加成員變量如圖6-4所示。</p>

104、<p>  圖6-4:利用ClassWizard為空間增加變量</p><p>  6)主機(jī)連接部分編碼:</p><p>  //登陸到指定計(jì)算機(jī)</p><p>  void CClientDlg::OnLogin() </p><p><b>  {</b></p><p>&l

105、t;b>  //獲得IP地址</b></p><p>  GetDlgItem(IDC_ADDRESS)->GetWindowText(m_csIP);</p><p>  CString tempstr;</p><p>  short tempshort;</p><p><b>  //獲得端口號(hào)<

106、;/b></p><p>  GetDlgItem(IDC_PORT)->GetWindowText(tempstr);</p><p>  tempshort = atoi(tempstr);</p><p>  m_iPort = htons(tempshort);</p><p><b>  //連接套接字<

107、/b></p><p>  OnSocketConnect();</p><p><b>  }</b></p><p>  其目的就是登陸到指定的服務(wù)器端,和服務(wù)端通信使用的是面向連接的流式套接字。</p><p>  7)“放棄連接”按鈕,編寫以下的源代碼:</p><p><b&

108、gt;  //注銷</b></p><p>  void CClientDlg::OnLogout() </p><p><b>  {</b></p><p>  // TODO: Add your control notification handler code here</p><p>  if(m_

109、hSocket!=INVALID_SOCKET)</p><p><b>  {</b></p><p>  closesocket(m_hSocket);</p><p>  WSACleanup();</p><p><b>  }</b></p><p>  m_csR

110、ead="";</p><p>  m_csSend="";</p><p>  UpdateData(FALSE);</p><p>  GetDlgItem(IDC_LOGIN)->EnableWindow(TRUE);</p><p>  GetDlgItem(IDC_LOGOUT)->

111、;EnableWindow(FALSE);</p><p>  GetDlgItem(IDC_SEND)->EnableWindow(FALSE);</p><p>  GetDlgItem(IDC_EDIT_SEND)->EnableWindow(FALSE);</p><p>  GetDlgItem(IDC_SCREEN)->EnableWi

112、ndow(FALSE);</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  8)消息傳送部分:</b></p><p><b>  //發(fā)送信息</b></p><p

113、>  void CClientDlg::OnSocketSend() </p><p><b>  {</b></p><p>  // TODO: Add your control notification handler code here</p><p>  UpdateData();</p><p>  m

114、_csSend.TrimLeft();</p><p>  m_csSend.TrimRight();</p><p>  if(!m_csSend.IsEmpty())</p><p><b>  {</b></p><p>  m_csSend=m_csSend+"\n";</p>

115、<p>  int nCharSend=send(m_hSocket,m_csSend,m_csSend.GetLength(),0);</p><p>  if(nCharSend==SOCKET_ERROR)</p><p>  MessageBox("發(fā)送數(shù)據(jù)時(shí)出錯(cuò)!","遠(yuǎn)程控制",MB_OK);</p><p&

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論