999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于SOCKET技術的幾種遠程控制功能的實現

2010-09-19 07:59:54劉玉寶祝海英張良和
長春大學學報 2010年8期
關鍵詞:進程指令信息

劉玉寶,祝海英,張良和

(1.長春大學 軟件學院,吉林 長春 130022;2.長春職業技術學院 信息技術分院,吉林 長春 130033)

基于SOCKET技術的幾種遠程控制功能的實現

劉玉寶1,祝海英2,張良和1

(1.長春大學 軟件學院,吉林 長春 130022;2.長春職業技術學院 信息技術分院,吉林 長春 130033)

遠程控制可以作為遠程維護,遠程辦公等應用領域的支持工具。本系統采用VC++進行設計和制作,控制端與服務端連接后實現被控端的服務控制功能、進程管理功能、屏幕截取及控制功能,以便進行計算機遠程管理和維護。

遠程控制;主控端;被控端;C/S模式

0 引言

遠程控制的原理很簡單:本地機直接啟動運行的主控端程序,并擁有與被控端主機使用者相同的權限。因此,如果能夠啟動服務器端的被控端程序,就可以使用相應的客戶端程序直接控制主機。也就是說,客戶端就相當于一個超級用戶,可以直接控制遠程服務端計算機。

1 遠程控制原理

簡單遠程控制系統由主控端和被控端兩部分組成。主控端用于實施各種對連網計算機的監控操作,被控端對于接收到的數據進行分析,解釋并執行[1],在Windows環境下即可實現。本系統采用面向連接的服務實現控制信息的傳輸。面向連接服務器處理的請求往往比較復雜,不是一來一去的請求應答所能解決的,而且往往是并發服務器。使用面向連接的套接字編程,可以通過圖1來表示。其客戶端和服務端的連接的連接過程如下:

圖1 面向連接的服務時序圖

首先,應該是客戶端的應用程序先啟動,并啟動接收數據的線程。等待接收一串數據。

服務端將數據發送給指定IP地址的客戶端。客戶端端接收到該數據后,保存該申請遠程服務的客戶端系統的信息。通過接收的SOCKET可以提取出發送請求的服務端的IP地址和開放的端口號。用頭插法將數據存儲在動態的鏈表,完成后重新進入數據接收狀態,等待其他的需要申請遠程服務的服務端主機發送數據消息。

客戶端再向服務端發送一串數據給服務端,表示客戶端將和服務端建立TCP的連接。服務端收到數據后對本機地址端口號的綁定。綁定完成后發送一串數據給客戶端,并進入監聽狀態,隨時準備建立TCP連接,并啟動一個線程來接收建立好的TCP連接后的數據信息。客戶端收到一串數據后。便初始化SOCKET的數據信息,并通過CONNECT函數建立TCP連接。系統連接成功,進入遠程控制狀態。

2 指令數據結構的設計

客戶端發送的數據是指令數據,指令數據只需要一個數字就行了。服務端接收到客戶端發來的指令數據,只需分析出其中指令數字就行了,并按指令數字代表的意義執行Windows指令管理本機系統就行了。同時將處理的數據結果發送給客戶端。客戶端收到的數據,執行指令后處理得到的數據,因此建立一個的結構體和宏指令,如圖2所示。來代表發送的指令和執行該指令后得到的數據。每次客戶端和服務端通信時都發送一個TagCommand結構體大小的數據。服務端通過wCmd來確定執行的指令,客戶端通過wCmd來確定收到的數據是關于哪方面的,對接收到的指令數據進行解析,執行指令,完成遠程控制的任務。

圖2 指令數據結構

3 遠程服務控制的實現

3.1 注銷服務端系統的實現

定義一個DWORD類型的變量dwVersion;通過GetVersion()來獲得當前服務端系統的版本信息。然后執行ExitWindowsEx(EWX_LOGOFF,0)函數,實現服務端主機的注銷。

3.2 關閉服務端系統的實現

定義一個DWORD類型的變量dwVersion;通過GetVersion()來獲得當前服務端系統的版本信息。如果系統版本小于0x80000000,定義一個HANDLE類型的變量hToken,定義一個TOKEN_PRIVILEGES類型的變量tkp。否則執行

ExitWindowsEx(EWX_SHUTDOWN|EWX_FORCE,0)函數。

3.3 重啟服務端系統的實現

定義一個DWORD類型的變量dwVersion;通過GetVersion()來獲得當前服務端系統的版本信息。如果系統版本小于0x80000000。否則執行ExitWindowsEx(EWX_FORCE|EWX_REBOOT,0)函數。

3.4 鎖定/解鎖服務端系統鼠標的實現

定義一個CPoint類型的變量pt,用GetCursorPos(&pt)獲取當前服務端系統中鼠標的位子[3],用SetCur-sorPos(pt.x,pt.y)來重置鼠標在服務端桌面上的位置,定義一個CRect類型的r變量。將該矩形的左上角位置設置為鼠標的X坐標值,右下角位置設置為鼠標的Y坐標值。其實該矩形框就是一個點的位置值。再通過調用ClipCursor(&r);函數,限制鼠標只能在該區域活動。即實現了鼠標的鎖定。通過調用系統的函數并將當前鼠標活動區域限制設置為NULL,即可實現釋放鼠標的功能。

4 遠程進程管理的實現

4.1 服務端進程獲取

首先通過循環結構查找確定在系統中運行的進程的數量,然后通過調用自定義函數來打開訪問服務端系統進程的訪問權限,獲得進程訪問令牌句柄,再取得DEBUG權限的LUID,根據參數,打開或關閉相應權限,再調整權限,最后關閉句柄[2]。訪問系統運行進程權限打開后,便可通過已知的進程數量,用循環通過訪問進程的PID來獲取一個進程的信息,在每個for循環將該進程的數據信息發送給客戶端。

客戶端收到一串指令數據后,將其放在全局變量中,通過分析接收到的數據。如果是一個進程的數據信息,就提取這串數據中的進程數據信息,將該進程數據信息用頭插法將其插入到客戶端中獲取的服務端的進程鏈表中,同時顯示在客戶端界面上。

服務端通過獲得的進程的數量循環地發送每個進程的信息,客戶端不斷的接收進程的數據信息,并將其動態保存。便完成了服務端進程的獲取。

4.2 終止服務端的進程

服務端接收到終止進程控制數據后,分析出指令如果是KILLPROCESS,便循環查找出該PID的進程。打開該進程的訪問入口,然后終止該進程,關閉進程的訪問句柄。

5 屏幕控制的實現

為了保證信息傳輸的穩定,在客戶端和服務端都重新各自建立一個進程,來監聽和處理屏幕控制所需要的數據。而新建立的TCP連接,是在原TCP連接的端口號加1,連接雙方的IP地址不變。為此在客戶端和服務端都新建了兩個socket類型的變量,和SOCKADDR_IN類型的變量。來保證通信的質量。通過位圖的數據結構如圖3所示對位圖數據進行分析和處理。

圖3 位圖數據結構圖

先獲取當前桌面的HWND,然后在通過這個HWND獲取當前窗口的HDC,調用GetWindowRect(hwnd,&rc);函數獲取當前窗口的大小,最后用HBITMAP類型的變量hbmp賦值::CreateCompatibleBitmap(hsrc,570,428);畫出桌面的圖像,再來設置圖像數據的信息[4]。由此而得到了服務端系統桌面圖像的位圖。用bitmap.Attach(hbmp);加載位圖的句柄來實現對桌面位圖數據的訪問,再將屏幕圖像的發送給客戶端。通過該位圖的句柄來訪問位圖的屬性,結構大小,像素。完成屏幕圖片頭信息的保存,然后將位圖顏色表的信息拷貝到位圖指針的數據區中,完成位圖顏色信息的保存,最后將每個像素值的數據保存[5]。完成上述數據的保存后,便將三個位圖信息依次發送給客戶端,每發送一次延時0.1秒,這是為了防止客戶端接收到數據發生阻塞而不能完整的接收一個圖片的信息。

客戶端接收到服務端發來的數據后依次存放。其中需要根據圖像的信息來計算圖像的像素數據所需要的空間,然后動態的開辟所需大小的空間。將位圖的像素信息保存在該區域內。再分析接收到的位圖的數據信息,并將其顯示在客戶端顯示區域里。

6 結論

系統實現了網絡中數據信息的傳輸和對系統的基本的遠程控制。通過調用Windows API編程、利用TCP/IP協議、采用C/S模型實現了幾種遠程控制功能。系統的架構和設計到最后實現,采用宏定義作為指令信息進行傳輸和控制,系統實現中涉及到,動態鏈表,多級指針,遞歸查找的算法……以及整個遠程控制系統的架構都為以后進一步的研究遠程控制提供了一定的思路和借鑒意義。但是仍然存在許多需要改進的地方,入系統運行效率不高;只能實現局域網內的遠程控制,還不能實現跨網的遠程控制,需要更進一步改進和完善。

[1] 梁洋洋.Visual C++黑客編程揭秘與防范[M].北京:人民郵電出版社,2009.

[2] 張友生.遠程控制編程技術[M].北京:電子工業出版社,2002.

[3] 求是科技.Visual C++程序設計與開發技術大全[M].北京:人民郵電出版社,2005.

[4] 謝鳳英,趙丹培,姜志國.Visual C++數字圖像處理[M].北京:電子工業出版社,2008.

[5] Stanley B.Lippman,Josee Lajoie著,潘愛民,張麗譯.C++Primer[M].北京:中國電力出版社,2006.

責任編輯:吳旭云

The implementation of some remote control functions based on SOCKET technology

LIU Yu-bao1,ZHU Hai-ying2,ZHANG Liang-he1
(1.Software College,Changchun University,Changchun 130022,China; 2.School of Information Technology,Changchun Vocational Institute of Technology,Changchun 130033,China)

Remote control system can be used as a supporting tool for remote maintenance and remote office,which uses VC++to design and program.It realizes the functions of service control,process management,screen capture and control by connecting client and control terminal so as to achieve remote management and maintenance.

remote control;master control;passive control;C/S model

TP311.1

A

1009-39072010)08-0084-04

2010-06-21

劉玉寶(1975-),男,吉林榆樹人,講師,博士研究生,主要從事嵌入式系統,智能控制,軟件工程等方面的研究。

猜你喜歡
進程指令信息
聽我指令:大催眠術
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
社會進程中的新聞學探尋
民主與科學(2014年3期)2014-02-28 11:23:03
坐標系旋轉指令數控編程應用
機電信息(2014年27期)2014-02-27 15:53:56
我國高等教育改革進程與反思
教育與職業(2014年7期)2014-01-21 02:35:04
Linux僵死進程的產生與避免
主站蜘蛛池模板: 国产小视频免费| 欧美综合在线观看| 亚洲欧美色中文字幕| 国产精品人莉莉成在线播放| 免费无码AV片在线观看国产| 亚洲成人动漫在线| 国产成人高清在线精品| 国产精品区视频中文字幕| 午夜a级毛片| 婷婷中文在线| 夜精品a一区二区三区| 91精品啪在线观看国产60岁| 亚洲三级a| 国产亚洲一区二区三区在线| 91小视频在线播放| 国产精品大白天新婚身材| 欧美在线一二区| 色妞永久免费视频| 免费a在线观看播放| 久久人搡人人玩人妻精品一| 无码区日韩专区免费系列| 日韩欧美国产三级| 亚洲美女久久| 91精品网站| AV网站中文| 四虎影视库国产精品一区| 国产精品毛片一区视频播| 亚洲AV成人一区国产精品| 国产靠逼视频| 亚洲成人网在线观看| 亚洲aaa视频| 亚洲最大福利网站| 国产午夜小视频| 国产a v无码专区亚洲av| 国产激情无码一区二区APP| 国产在线一区二区视频| 久久精品视频亚洲| 国产人前露出系列视频| 57pao国产成视频免费播放| 亚洲美女一区二区三区| 婷婷综合色| 国产免费怡红院视频| 亚洲无线一二三四区男男| 国产精品第页| 国产精品尤物在线| 国产精品国产三级国产专业不| 久久久久久午夜精品| 久久熟女AV| 国内精品免费| 欧美成人亚洲综合精品欧美激情| 日韩成人在线网站| 国产91视频免费观看| www.亚洲天堂| 国产综合另类小说色区色噜噜| 青青国产视频| 国产人免费人成免费视频| 欧美日韩国产成人在线观看| 精品人妻AV区| 亚洲综合天堂网| 在线人成精品免费视频| 久久久久免费精品国产| 亚洲天堂免费观看| 免费Aⅴ片在线观看蜜芽Tⅴ | 久久99精品国产麻豆宅宅| 欧美一级黄片一区2区| 亚洲经典在线中文字幕| 日韩精品一区二区三区中文无码 | 玖玖精品在线| 国产成人乱无码视频| 日本黄色不卡视频| 欧美精品成人一区二区视频一| 91精品综合| 国产成人毛片| 国产精品观看视频免费完整版| 国产午夜福利亚洲第一| 手机成人午夜在线视频| 午夜啪啪福利| 伊人91在线| 国产最新无码专区在线| 中国精品久久| 2024av在线无码中文最新| 国产18页|