• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于MFC的遠(yuǎn)程監(jiān)控系統(tǒng)的技術(shù)分析

      2013-03-23 04:00:11李慶江
      電腦與電信 2013年5期
      關(guān)鍵詞:被控應(yīng)用程序客戶端

      李慶江

      (菏澤學(xué)院教務(wù)處,山東 菏澤 274000)

      1.引言

      遠(yuǎn)程監(jiān)控程序利用了套接字和應(yīng)用程序的消息機(jī)制,讓控制客戶端與被控服務(wù)端進(jìn)行數(shù)據(jù)交換,從而達(dá)到監(jiān)控與被監(jiān)控的目的。根據(jù)這個(gè)思想,本遠(yuǎn)程監(jiān)控系統(tǒng)需要兩個(gè)獨(dú)立的程序,客戶端程序和服務(wù)器程序,即對(duì)應(yīng)為主控端和被控端。使用前需要將客戶端程序安裝到主控端電腦上,將服務(wù)器程序安裝到被控電腦上。

      2.Windows系統(tǒng)編程

      Windows Socket(WinSock)API是基于BSD版本的套接字,但為Windows進(jìn)行了專門(mén)的擴(kuò)展。WinSock API中使用的大多數(shù)函數(shù)與UNIX中的Berkeley Socket實(shí)現(xiàn)是一樣的。而Windows程序是一種基于事件驅(qū)動(dòng)的編程模式,這就意味著應(yīng)用程序所要做的大部分工作都是隨著Windows消息的變化而進(jìn)行的。在遠(yuǎn)程控制軟件中將涉及大量的系統(tǒng)消息處理和自定義消息的處理。

      3.客戶端模塊劃分

      根據(jù)遠(yuǎn)程控制程序的功能要求,客戶端需要完成六個(gè)功能模塊:主框架模塊、搜尋服務(wù)器模塊、屏幕監(jiān)控模塊、文件傳輸模塊、文件監(jiān)控模塊。

      以下對(duì)各模塊進(jìn)行簡(jiǎn)單介紹:

      主框架模塊:負(fù)責(zé)客戶端窗口消息處理和映射。提供菜單和分區(qū)視圖,顯示功能模塊的按鈕選項(xiàng)。

      搜尋服務(wù)器模塊:主要是輸入搜尋范圍,即IP地址范圍。搜尋到局域網(wǎng)絡(luò)中已開(kāi)機(jī)并安裝了服務(wù)器程序的主機(jī),與之連接并通過(guò)遠(yuǎn)程的服務(wù)器端程序查看被控端機(jī)器的基本信息。

      屏幕監(jiān)控模塊:用于實(shí)時(shí)監(jiān)視被控端電腦的屏幕顯示。

      文件傳輸模塊:用于接收和發(fā)送各種鼠標(biāo)、鍵盤(pán)消息等命令,實(shí)現(xiàn)文件與文件夾的上傳與下載。

      文件監(jiān)控模塊:用于實(shí)現(xiàn)兩端機(jī)器問(wèn)文件及文件夾的管理,主要包括刪除文件、目錄瀏覽、文件更名、更改文件屬性等。

      由于遠(yuǎn)程控制程序的相關(guān)技術(shù)涉及的面比較多,這里主要介紹文件傳輸技術(shù)設(shè)計(jì)。

      4.遠(yuǎn)程文件的管理

      在遠(yuǎn)程控制中,遠(yuǎn)程文件的管理主要包括文件的上傳(即把文件從被控制端傳到控制端)與下載(即把文件從控制端下載到被控制端)、文件刪除、瀏覽目錄、修改文件的相關(guān)信息如文件名、文件的讀寫(xiě)屬性等。這些功能基本上可用文件傳輸協(xié)議FTP來(lái)實(shí)現(xiàn)。

      在VC++6.0開(kāi)發(fā)環(huán)境下,要進(jìn)行FTP的相關(guān)文件操作,需要用到兩個(gè)類:CInternetSession和CFtpConnection。如果在程序運(yùn)行期間需要保持和服務(wù)器的連接,可以創(chuàng)建一個(gè)CInternetSession的對(duì)象作為類CWinApp的成員。

      FTP是MFC的WinInet支持的三個(gè)Internet功能之一,這里只需要先創(chuàng)建一個(gè)CInternetSession實(shí)例和一個(gè)CFtpConnection對(duì)象,就可以實(shí)現(xiàn)和一個(gè)FTP服務(wù)器的通信。

      頭文件定義如下:

      {CFtpConnection*m_pFtpConnection;Cstringm_FileEdit;}

      上傳文件代碼實(shí)現(xiàn)如下:

      void CFtpDlg::OnSend()//這里表示創(chuàng)建了一個(gè)基于對(duì)話框的應(yīng)用程序

      {UpdateData();m_FileEdit.Trim Left();m_FileEdit.TrimRight();

      if(m_pFtpConnection)

      {if (!m_pFtpConnection->PutFile(m_pFileEdit,m_FileEdit))

      {MessageBox(“上傳文件失??!”);}else{MessageBox(“上傳文件成功?!?;}}else{…}}

      5.服務(wù)器主要應(yīng)用技術(shù)

      為滿足多客戶端的實(shí)現(xiàn),需要采用多線程技術(shù)的支持。在本軟件服務(wù)器端會(huì)對(duì)每個(gè)客戶端創(chuàng)建一個(gè)監(jiān)聽(tīng)線程,并針對(duì)每個(gè)監(jiān)聽(tīng)線程實(shí)例化一個(gè)CServer類提供其數(shù)據(jù)及服務(wù)。另一個(gè)主要技術(shù)是程序的自啟動(dòng)和隱藏技術(shù)。

      5.1 多線程技術(shù)

      以下是多線程實(shí)現(xiàn)多客戶端的核心代碼。while(TRUE)

      { Accept=accept(Listen,(struct scokaddr*)&client,&iAddrSize);

      if(Accept!=INVALID_SCOKET)

      {Clientinfo.socket=Accept;

      memset(szClientIP,’

      古浪县| 财经| 托克托县| 景宁| 沈阳市| 珠海市| 额济纳旗| 越西县| 绍兴县| 阿拉善左旗| 西丰县| 化隆| 盐城市| 诸暨市| 如皋市| 平山县| 班戈县| 金山区| 浮山县| 宁武县| 彭山县| 宿州市| 道真| 绩溪县| 仁寿县| 安仁县| 安丘市| 师宗县| 望城县| 江油市| 济宁市| 昌平区| 望谟县| 巴林左旗| 中西区| 康定县| 邹城市| 济南市| 台中县| 汤阴县| 彩票|