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

下載本文檔

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

文檔簡介

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

2、gt;  班 級: </b></p><p><b>  姓 名:</b></p><p><b>  學(xué) 號: </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ò)遠程監(jiān)控系統(tǒng)的研究意義1</p>

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

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

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

7、算機網(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 遠程控制的實現(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 詳細設(shè)計與實現(xiàn)17</p><p>  6.1 軟件的實現(xiàn)的前提和功能17</p><p>  6.1.1 軟件實現(xiàn)的前提18&l

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

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

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

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

13、屏幕的獲?。慌c被控端信息的傳遞。其中要解決的幾個關(guān)鍵性的技術(shù)問題:1)采用多線程技術(shù)實現(xiàn)多客戶端服務(wù);2)將屏幕劃分成網(wǎng)格狀進行圖片的傳輸,并以網(wǎng)格為單位刷新屏幕,屆時僅需要將有更新的屏幕網(wǎng)格發(fā)送到客戶端即可,以增加傳輸速度。</p><p>  關(guā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ò)遠程監(jiān)控系統(tǒng)的研究意義</p><p>  不夸張的說,網(wǎng)絡(luò)已經(jīng)深入人們生活的各個方面。無論是工作學(xué)習(xí),還是軍事科學(xué),總是離不開網(wǎng)絡(luò)的基礎(chǔ)。網(wǎng)絡(luò)技術(shù)的迅速發(fā)展不但帶來了網(wǎng)絡(luò)應(yīng)用的擴大,也帶來了網(wǎng)絡(luò)管理的困難。地域的限制,平臺的跨越,都增加了管理員對網(wǎng)絡(luò)的管理難度。為了解決這個問題,需要提出一個能獨立獲取局域網(wǎng)內(nèi)其他計算機信息并能遠程監(jiān)控和管理的解決方案,在將來的研究中,跨平臺的管理系統(tǒng)能更靈活的解決這一難

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

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

23、程序?qū)崟r傳送被控端的各種信息;通過對整個局域網(wǎng)的掃描限制非法包的傳輸,對整個網(wǎng)絡(luò)的狀況和性能有了完整而且實時的了解,使網(wǎng)絡(luò)管理員能及時發(fā)現(xiàn)問題的出現(xiàn),并且及時解決。傳統(tǒng)的遠程監(jiān)控與管理軟件一般使用NETBEUI、NETBIOS、IPX/SPX、TCP/IP等協(xié)議來實現(xiàn)遠程控制,不過,隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,目前很多遠程控制軟件提供通過Web頁面以Java技術(shù)來控制遠程電腦,這樣可以實現(xiàn)在不同操作系統(tǒng)下的遠程控制。</p>&

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

42、有以下幾個特點:</p><p> ?、倨茐男?。病毒對于計算機各個部分都有可能進行入侵以及破壞。</p><p> ?、陔[蔽性。病毒程序大多夾在正常程序之中,很難被發(fā)現(xiàn)。</p><p>  ③潛伏性。病毒入侵后,能在相當(dāng)一段時間內(nèi)處于靜止?fàn)顟B(tài),一旦觸發(fā)某些條件,便能夠立即激活,進行破壞。</p><p> ?、軅魅拘浴2《灸軌蜃晕覐?fù)制并散播

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

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

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

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

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

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

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

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

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

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

53、體間必須達成相互都能接受的協(xié)定。這些協(xié)定就是規(guī)程或協(xié)議。協(xié)議往往被制定成一系列規(guī)則,用來管制兩個實體間的數(shù)據(jù)交換。協(xié)議中的關(guān)鍵因素包括:</p><p>  1)語法,包括數(shù)據(jù)格式和信號電平等;</p><p>  2)語議,包括協(xié)調(diào)用的控制信息和差錯管理;</p><p>  3)規(guī)則,包括時間控制,速率匹配和定時。</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)是作為計算機通信體系結(jié)構(gòu)的模型由國際標準化組織制訂并構(gòu)架的開發(fā)協(xié)議標準。</p><p>  OSI模型是由應(yīng)用層、表示層、會話層、傳輸層、數(shù)據(jù)鏈路層和物理層七層組成。盡管在OSI的框架內(nèi)開發(fā)了很多有用的協(xié)議,但全面的七層模型并

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

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

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

58、組交換網(wǎng)絡(luò)研究項目,現(xiàn)在已經(jīng)發(fā)展成為計算機之間最常用的網(wǎng)絡(luò)協(xié)議。它是一個開源的協(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é)議采用了四層的層級結(jié)構(gòu),每一層都呼叫它的下一層所提供的網(wǎng)絡(luò)來完成自己的需求。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

78、糾錯機制,沒有查重機制,并不順序接受數(shù)據(jù)包。</p><p> ?、墼际教捉幼郑⊿OCK_RAW)</p><p>  較低層協(xié)議如IP、ICMP能夠直接訪問該接口。常用檢驗新設(shè)備和新協(xié)議。</p><p>  5.2 Windows的消息系統(tǒng) </p><p>  在遠程控制軟件中將涉及大量的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、的運行與關(guān)閉、窗口打開與關(guān)閉、鼠標鍵的點擊和彈開等等。</p><p>  2)控件通知消息:由編輯框、列表框等控件或子窗日發(fā)給其父窗口的通知消息,消息名為WM_ COMMAND,消息中使用控件通知代碼,以區(qū)分具體的控件通知消息。</p><p>  3)命令消息:命令消息也以WM_ COMMAND為消息名,在消息中包含有命令的標識符(ID),以區(qū)分具體的命令。命令消息的來源是如下兩種用戶

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

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

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

84、相互映射的表以及分析其內(nèi)部應(yīng)用框架的代碼。</p><p>  CCmdTarget類的派生類都能建立消息映射,其內(nèi)容包括如下兩個方面:</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>  消息映射入口項</b></p><p><b>  …………</b></p><p>  END-MESSAGE

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

102、t;/p><p>  3)設(shè)置編輯框的屬性:其中“IP地址”對應(yīng)編輯框的ID取IDC_ADDRESS;“端口”對應(yīng)編輯框的ID取IDC_PORT;“要發(fā)送的命令”對應(yīng)編輯框的ID取IDC_EDIT_SEND,選中“Disabled”選項;“信息顯示窗口”對應(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)主機連接部分編碼:</p><p>  //登陸到指定計算機</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>  //獲得端口號<

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ù)時出錯!","遠程控制",MB_OK);</p><p&

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論