亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于I/O緩沖區(qū)讀寫的控制臺遠程交互模型

        2013-09-29 05:20:18宋宇波藍智靈
        計算機工程 2013年1期
        關鍵詞:命令行緩沖區(qū)命令

        唐 磊,宋宇波,藍智靈

        (東南大學信息科學與工程學院,南京 210096)

        1 概述

        近年來,隨著計算機技術的不斷發(fā)展,通過網(wǎng)絡遠程交互以運行各種應用或服務程序,人們可以更方便安全地實現(xiàn)遠程辦公等工作[1],具有巨大的市場前景。在現(xiàn)有計算機操作系統(tǒng)中,Microsoft公司的Windows系統(tǒng)因其卓越的易用性和絢麗的視覺效果成為計算機系統(tǒng)中大眾用戶的首選。Windows系統(tǒng)主要提供了2種與系統(tǒng)交互的方式:可視化操作和命令行操作。

        基于可視化操作,Windows系統(tǒng)提供了如遠程桌面連接等途徑[2],遠程桌面連接基于遠程桌面協(xié)議(Remote Desktop Protocol, RDP)[3]。為了保障通信數(shù)據(jù)的安全,可以采用SSL-VPN進行加密處理[4-5]。

        而在命令行操作方面,現(xiàn)有的實現(xiàn)命令行操作的常規(guī)方法主要是將控制臺程序窗口的標準輸入輸出重定向到其父進程的發(fā)送/接收管道上[6],或者是重定向到用于遠程通信的基于TCP/IP協(xié)議的套接字上[7]。由于一些系統(tǒng)安防軟件會對系統(tǒng)中程序標準輸入輸出的重定向進行審核,因此該方法與這些安防軟件的兼容性較差,會使其產(chǎn)生誤報或者誤刪等錯誤操作,從而影響整個系統(tǒng)的穩(wěn)定性。于此同時,由于系統(tǒng)自帶的常用控制臺程序只能用于本機操作,沒有添加遠程通信的模塊,為了將控制臺程序用于遠程交互,需要修改程序源代碼,在程序中添加與遠程通信的接口。該方法無法適用于已經(jīng)成型的控制臺程序,即對于控制臺程序的向下兼容性較差。

        針對以上問題,本文提出一種控制臺遠程交互模型,并設計一種控制臺程序加載器。

        2 控制臺遠程交互

        控制臺程序是Windows為了兼容DOS程序而設立的沒有獨立窗口的程序,一般在命令行下(cmd.exe)運行。控制臺程序的輸入輸出是通過標準I/O進行的,不像界面程序可以通過鼠標點擊進行操作。一般后臺運行的程序可作為控制臺程序。

        控制臺I/O緩沖區(qū)包括輸入緩沖區(qū)和輸出緩沖區(qū)(屏幕緩沖區(qū))。輸入緩沖區(qū)能夠存儲輸入記錄序列,該序列中包含了各種輸入事件的信息,如鍵盤事件和鼠標事件等;輸出緩沖區(qū)是控制臺窗口的一個二維的字符數(shù)組和彩色數(shù)據(jù),即屏幕中的文本和背景顏色屬性等信息。

        所謂遠程交互,是指用戶在異地通過網(wǎng)絡與本地計算機通信[8]。隨著網(wǎng)絡的高速發(fā)展,電腦遠程交互技術越來越引起人們的關注。目前遠程交互的主要應用包括遠程辦公、遠程教育、遠程維護和遠程協(xié)助等。

        3 遠程交互模型分析

        為了更好地實現(xiàn)對系統(tǒng)安防軟件的兼容性,以及實現(xiàn)對控制臺程序良好的兼容性,本文提出一種新型的基于I/O緩沖區(qū)讀寫的控制臺程序遠程交互模型。該模型克服現(xiàn)有解決方案中容易與系統(tǒng)軟件沖突導致系統(tǒng)不穩(wěn)定的不足,并且為了增強對控制臺程序的兼容性,提出了一種全新的架構。在保證控制臺程序完整性的前提下,為控制臺程序提供了一個加載器,如圖1所示。

        圖1 遠程交互模型拓撲圖

        該加載器作為控制臺程序的父進程,采用模擬鍵盤輸入到窗口輸入緩沖區(qū)的方式作為控制臺窗口的輸入,并通過獲取控制臺窗口的輸出緩沖區(qū)數(shù)據(jù)得到輸出。由加載該控制臺程序的父進程與其進行交互,父進程通過 Windows套接字(Winsock)與遠程用戶進行命令和數(shù)據(jù)的傳輸,從而實現(xiàn)對控制臺程序的遠程交互。

        3.1 遠程交互模型的結構

        該模型的遠程交互包括以下組件:遠程主機接入端和本地控制臺程序加載器;遠程主機接入端與本地控制臺程序加載器通過互聯(lián)網(wǎng)或局域網(wǎng)(有線或者無線)相互通信。

        遠程主機接入端具體包括人機交互模塊和遠程通信模塊;2個功能模塊在遠程主機系統(tǒng)中運行。當人機交互模塊接收到用戶的命令時,將命令轉發(fā)給遠程通信模塊,遠程通信模塊將命令通過網(wǎng)絡發(fā)送給本地控制臺程序加載器;當遠程通信模塊收到本地控制臺程序加載器發(fā)送的回顯數(shù)據(jù)時,將數(shù)據(jù)轉發(fā)給人機交互模塊,人機交互模塊再將數(shù)據(jù)顯示給用戶。

        本地控制臺程序加載器具體包括本地通信模塊和控制臺交互模塊;2個功能模塊在本地主機系統(tǒng)中運行。當本地通信模塊收到命令后,將命令轉發(fā)給控制臺交互模塊,控制臺交互模塊將命令作為控制臺程序命令行窗口的輸入傳遞給控制臺程序;當控制臺交互模塊獲取到控制臺程序命令行窗口的回顯數(shù)據(jù)時,將數(shù)據(jù)轉發(fā)給本地通信模塊,本地通信模塊再將回顯數(shù)據(jù)通過網(wǎng)絡發(fā)送給遠程主機接入端。圖2為該模型結構及模塊間連接關系示意圖。

        圖2 遠程交互模型結構及模塊間連接關系示意圖

        如圖2所示,該模型遠程交互流程如下:

        (1)本地控制臺程序加載器初始化,等待遠程主機接入端的連接。

        (2)遠程主機接入端初始化,與本地控制臺程序加載器建立連接,做好通信準備。

        (3)用戶對遠程主機接入端進行配置,輸入控制命令。

        (4)遠程主機接入端接收到用戶命令,將命令通過網(wǎng)絡發(fā)送給本地控制臺程序加載器。

        (5)本地控制臺程序加載器接收到命令數(shù)據(jù),將命令通過模擬鍵盤輸入的方式作為控制臺程序命令行窗口的輸入數(shù)據(jù)傳遞給控制臺程序。

        (6)當控制臺程序處理完命令輸出回顯數(shù)據(jù)時,本地控制臺程序加載器從控制臺程序命令行窗口的輸出緩沖區(qū)獲取到回顯數(shù)據(jù),并將數(shù)據(jù)通過網(wǎng)絡發(fā)送給遠程主機接入端。

        遠程主機接入端接收到回顯數(shù)據(jù),通過人機交互模塊顯示給用戶。

        3.2 加載器交互模塊分析

        圖3為加載器中控制臺交互模塊流程。

        圖3 加載器交互模塊流程

        如圖3所示,在與控制臺程序的命令行窗口交互前,加載器的控制臺交互模塊先進行初始化,創(chuàng)建用于處理控制臺程序命令行窗口輸入輸出的2個線程。成功創(chuàng)建線程后,創(chuàng)建控制臺程序子進程。創(chuàng)建成功后,將本地控制臺程序加載器(父進程)的命令行窗口附著到控制臺程序的命令行窗口上。加載器接收到命令后,輸入線程通過模擬鍵盤輸入到窗口輸入緩沖區(qū)的方式將命令輸入到控制臺程序的命令行窗口,控制臺程序處理完命令后,加載器的輸出線程從命令行窗口輸出緩沖區(qū)中獲取到回顯數(shù)據(jù),再將數(shù)據(jù)發(fā)送給遠程主機接入端。當加載器的輸入線程收到的是終止命令時,本地控制臺程序加載器終止輸入輸出雙線程,然后結束控制臺程序子進程和自身進程。

        3.3 加載器交互模塊具體實施方案

        結合圖2對該模型中的關鍵技術進行詳細實例說明。網(wǎng)絡環(huán)境:互聯(lián)網(wǎng)/局域網(wǎng);硬件設備:2臺 PC機;運行平臺:Windows XP;控制臺程序:cmd.exe。

        如圖2所示,模型中的遠程主機接入端運行在一臺遠程PC機上,它的作用是通過人機交互模塊接收用戶輸入的命令,使用遠程通信模塊,將命令經(jīng)由網(wǎng)絡發(fā)送給本地控制臺程序加載器。本地控制臺程序加載器通過本地通信模塊接收遠程主機接入端發(fā)送的命令,將命令由控制臺交互模塊作為命令行窗口的輸入傳給控制臺程序;控制臺程序處理完相應命令后,向命令行窗口輸出回顯數(shù)據(jù),本地控制臺程序加載器的控制臺交互模塊從控制臺程序的命令行窗口輸出緩沖區(qū)中獲取回顯數(shù)據(jù),再將回顯數(shù)據(jù)通過本地通信模塊由網(wǎng)絡發(fā)送給遠程主機接入端。遠程主機接入端通過遠程通信模塊接收回顯數(shù)據(jù),再將回顯數(shù)據(jù)通過人機交互模塊顯示給用戶。

        下面介紹在 Windows環(huán)境下加載器控制臺交互模塊的具體實施方法。Microsoft的 Windows系統(tǒng)提供一整套API函數(shù)庫方便編程人員進行二次開發(fā)。如圖3所示,具體步驟如下:

        (1)加載器控制臺交互模塊先進行初始化,并調(diào)用函數(shù)創(chuàng)建用于傳遞命令行窗口輸入輸出數(shù)據(jù)的I/O雙線程。

        (2)調(diào)用函數(shù),創(chuàng)建控制臺程序進程(cmd子進程)。

        (3)調(diào)用函數(shù),將本地控制臺程序加載器的命令行窗口附著在cmd子進程的命令行窗口上。這樣做的結果是本地控制臺程序加載器的命令行窗口的輸入會成為cmd子進程窗口的輸入,cmd子進程窗口的輸出會成為本地控制臺程序加載器的命令行窗口的輸出。因此,只需要操作本地控制臺程序加載器的命令行窗口,就可以實現(xiàn)與cmd子進程命令行窗口的交互。

        (4)當加載器控制臺交互模塊收到遠程發(fā)送來的用戶命令時,如果是退出命令,則控制臺交互模塊終止I/O雙線程,然后退出自身程序。

        (5)如果不是退出命令,輸入線程調(diào)用函數(shù),打開“CONIN$”,即 cmd子進程命令行窗口的輸入緩沖區(qū),結構INPUT_RECORD描述了命令行窗口輸入緩沖區(qū)的一個輸入事件[9],鍵盤的一次按鍵的事件可以存儲的一個INPUT_RECORD結構中,因此,將輸入命令的字符存儲在INPUT_RECORD結構數(shù)組中,調(diào)用函數(shù)將命令輸入到命令行窗口中,即模擬鍵盤輸入的技術。

        (6)當 cmd子進程命令行窗口產(chǎn)生回顯數(shù)據(jù)時,輸出線程調(diào)用函數(shù),打開“CONOUT$”,即 cmd子進程命令行窗口的輸出緩沖區(qū),調(diào)用函數(shù),獲取cmd子進程命令行窗口的大小(寬高)[10],根據(jù)大小確定一次從輸出緩沖區(qū)中讀取的字符數(shù),再調(diào)用函數(shù),從輸出緩沖區(qū)中讀取相應的字符。

        4 模型測試結果分析

        4.1 系統(tǒng)軟件兼容性

        為了測試該模型對系統(tǒng)安防軟件的兼容性,針對目前主流的安防軟件分別搭建了相應的測試平臺,包括 360殺毒/安全衛(wèi)士、卡巴斯基 2011Kav、NOD32和諾頓2011。測試結果如表1所示。

        表1 系統(tǒng)安防軟件兼容性測試結果

        從表1可以看出,基于控制臺程序窗口標準輸入輸出重定向的方式會使安防軟件產(chǎn)生誤報或者誤刪等錯誤操作,兼容性較差,影響系統(tǒng)的穩(wěn)定性;基于控制臺程序窗口I/O緩沖區(qū)讀寫的方式能夠有效避免安防軟件的誤報和誤刪,提高了系統(tǒng)的穩(wěn)定性,保證了與系統(tǒng)安防軟件的兼容性。

        4.2 控制臺程序兼容性

        為了測試該模型對控制臺程序的兼容性,針對目前常用的控制臺程序搭建了相應的測試平臺,包括cmd.exe、ipconfig.exe、telnet.exe、ftp.exe、nslookup.exe、NetCapture.exe和 ping.exe。測試結果如表 2所示。

        表2 控制臺程序兼容性測試結果

        從表2可以看出,由于常用的系統(tǒng)提供的控制臺程序中沒有提供用于對外通信的模塊,因此無法與其他程序通信。而NetCapture.exe是第三方的控制臺程序,自身帶有通信模塊,所以能夠兼容。基于控制臺程序窗口標準輸入輸出重定向的方式在不修改控制臺程序的前提下,無法用于常用的系統(tǒng)控制臺程序;基于控制臺程序窗口I/O緩沖區(qū)讀寫的方式能夠將控制臺程序作為單獨模塊,保證其完整性,因此,可以很好地用于常用的各種控制臺程序,保證該模型對控制臺程序的兼容性。

        5 結束語

        由于現(xiàn)有方案中需要對控制臺程序的標準輸入輸出進行重定向,容易與系統(tǒng)軟件發(fā)生沖突,并導致系統(tǒng)不穩(wěn)定;同時為了支持遠程交互,需要對控制臺程序進行修改,添加遠程通信模塊,因此對控制臺程序的兼容性較差。

        本文提出了一種基于I/O緩沖區(qū)讀寫的控制臺遠程交互模型,將控制臺程序作為獨立模塊,并設計了用于擴展其功能的加載器,無需對控制臺程序進行修改。該加載器采用模擬鍵盤輸入到控制臺窗口輸入緩沖區(qū)的方式實現(xiàn)控制臺程序命令行窗口的輸入,從控制臺窗口的輸出緩沖區(qū)中獲取回顯數(shù)據(jù),并通過網(wǎng)絡使本地控制臺程序與遠程主機接入端進行遠程數(shù)據(jù)通信,從而實現(xiàn)非重定向條件下與控制臺程序的交互,增強了對不同類型控制臺程序的兼容性。

        [1]Kara A.Secure Remote Access from Office to Home[J].IEEE Communications Magazine, 2001, 39(10): 68-72.

        [2]Richardson T.Virtual Network Computing[J].IEEE Internet Computing, 1998, 2(1): 33-38.

        [3]Microsoft White Paper.Remote Desktop Protocol(RDP)Features and Performance[EB/OL].(2007-01-20).http://www.microsoft.com/technet/prodtechnol/Win2KTS/evaluate/featfunc/rdpfperf.mspx.

        [4]Stallings W.Network Security Essentials: Applications and Standards[M].[S.l.]: Prentice-Hall, Inc., 2000.

        [5]Cai Longzheng, Yu Shengsheng, Zhou Jingli.Research and Implementation of Remote Desktop Protocol Service over SSL VPN[C]//Proc.of IEEE International Conference on Service Computing.[S.l.]: IEEE Computer Society, 2004:502-505.

        [6]Kernighan B W.The Unix System and Software Reusability[J]. IEEE Transactions on Software Engineering, 1984, 10(5): 513-518.

        [7]Gao Xiaoan, Wang Lina.Networked Control and Monitoring System Based on Industrial Ethernet[C]//Proc.of the 6th IEEE Conference on Industrial Electronics and Applications.[S.l.]: IEEE Press, 2011: 1337-1341.

        [8]Bellucci A, Malizia A, Diaz P, et al.Human-display Interaction Technology: Emerging Remote Interfaces for Pervasive Display Environments[J].IEEE Pervasive Computing, 2010, 9(2): 72-76.

        [9]Richter J, Nasarre C.Windows via C/C++[M].Redmond,USA: Microsoft Press, 2008.

        [10]范文慶, 周彬彬, 安 靖.Windows API 開發(fā)詳解——函數(shù)、接口、編程實例[M].北京: 人民郵電出版社,2011.

        猜你喜歡
        命令行緩沖區(qū)命令
        嵌入式系統(tǒng)環(huán)形緩沖區(qū)快速讀寫方法的設計與實現(xiàn)
        只聽主人的命令
        Windows 10新版CMD更新
        移防命令下達后
        Linux系統(tǒng)下GRIB2格式GFS資料轉為GRIB1格式的方法詳解
        這是人民的命令
        關鍵鏈技術緩沖區(qū)的確定方法研究
        藍色命令
        地理信息系統(tǒng)繪圖緩沖區(qū)技術設計與實現(xiàn)
        AVS標準中的視頻碼流緩沖區(qū)校驗模型分析
        電視技術(2012年1期)2012-06-06 08:13:58
        国产精品爽爽久久久久久竹菊| 亚洲视频在线观看青青草| 亚洲av网站在线免费观看| 视频在线观看一区二区三区| 精品亚洲成a人片在线观看| 久久综合第一页无码| 日本少妇爽的大叫高潮了| 国产精品成人av一区二区三区| 熟妇熟女乱妇乱女网站| 国产看黄网站又黄又爽又色| 久久久久人妻精品一区5555| 国产自拍av在线观看| 精品久久久久久无码专区| 亚洲精品黑牛一区二区三区| 国产午夜视频免费观看| 蜜桃视频网址在线观看| 免费无遮挡无码永久在线观看视频| 成人黄色网址| 久久国产乱子精品免费女| 亚洲精品在线97中文字幕| 婷婷综合另类小说色区| 久久久久久久性潮| 亚洲AV日韩AV高潮喷潮无码| 免费精品人妻一区二区三区| 亚洲欧美色一区二区三区| 婷婷五月综合激情| 国产免费视频一区二区| 国产av剧情一区二区三区| 极品新婚夜少妇真紧| 午夜精品一区二区三区无码不卡| 日韩精品免费观看在线| 99re6在线视频精品免费| 亚洲欧美日韩一区二区三区在线 | 精品国产一区二区三区a| 人妻饥渴偷公乱中文字幕| 国产欧美日韩在线观看| 大香蕉久久精品一区二区字幕| 中文字幕亚洲一区二区不下| 国内精品久久久久影院一蜜桃 | 又黄又硬又湿又刺激视频免费| 久久精品国产热|