應用程序遠程控制方法
【技術領域】
[0001]本發(fā)明屬于應用程序控制領域,特別涉及一種應用程序遠程控制方法。
【背景技術】
[0002]隨著互聯(lián)網(wǎng)技術的飛速發(fā)展,突破地域的限制,實現(xiàn)可以遠程控制某一臺電腦上安裝的應用程序。目前,遠程控制應用程序的方法如下:
[0003]在運行應用程序的計算機上安裝一個網(wǎng)頁服務器,如IIS、Tomcat、Apache、Nginx等知名網(wǎng)站服務器。基于這些知名服務器程序做一個網(wǎng)頁程序,然后通過這個網(wǎng)頁程序?qū)崿F(xiàn)與應用程序通信。由于這個網(wǎng)頁程序與應用程序都在同一臺計算機上運行,因此可以利用進程間通信實現(xiàn)程序間通信。還有一種方法是利用本地磁盤上的文件做為中間媒介,網(wǎng)頁程序向該文件里寫數(shù)據(jù),然后應用程序去讀數(shù)據(jù)實現(xiàn)程序間通信。以上所述以上這些方法都能實現(xiàn)遠程與應用程序進行通訊,但是這些方法存在程序結構混亂、不易于維護、效率低下、通信的穩(wěn)定性難以保證的缺點。
[0004]另一種方法是利用數(shù)據(jù)庫做為中間媒介。應用程序單獨開一個線程,實時去讀取數(shù)據(jù)庫中特定的一張數(shù)據(jù)表,外界如果要發(fā)命令也向這張?zhí)囟ǖ谋砝飳懭霐?shù)據(jù)即可,但是本方法中遠程控制應用程序不能跨機器和跨平臺,因為不一定所有的機器都支持商定的數(shù)據(jù)庫,而且應用程序得實時去讀取這張表里的數(shù)據(jù),這樣一來應用程序會消耗一定的資源。
[0005]還有一種方法是利用微軟推出WCF技術。WCF技術是為了建立和運行面向服務(Service Oriented)應用程序的統(tǒng)一框架。但是WCF僅支持用.NET Framework 3.5環(huán)境開發(fā)的軟件,如果要在非Window平臺、嵌入式設備、單片機上運行就不能運行了。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的一個目的是解決至少上述問題或缺陷,并提供至少后面將說明的優(yōu)點。
[0007]本發(fā)明還有一個目的是提供一種應用程序遠程控制的方法,通過建立應用程序?qū)腎P端口與TCP/IP協(xié)議棧間的通信連接,監(jiān)聽對應IP端口的HTTP請求,然后應用程序?qū)TTP請求作出響應,本方法不需要中間媒介或服務器,通過發(fā)送HTTP請求來實現(xiàn)對應用程序的遠程控制。
[0008]本發(fā)明還有一個目的是網(wǎng)絡頁或網(wǎng)絡發(fā)送的請求命令通過應用程序的反射機制或分流機制調(diào)用應用程序,并與應用程序進行通信,本方法的結構清晰、易于維護、運行效率高、通信穩(wěn)定、軟件開銷小。
[0009]本發(fā)明另一個目的是以最基本的C語言為基礎,調(diào)用最基本的C語言函數(shù)庫,實現(xiàn)跨平臺和跨語言的遠程調(diào)用應用程序。
[0010]為了實現(xiàn)根據(jù)本發(fā)明的這些目的和其它優(yōu)點,提供了一種應用程序的遠程控制方法,包括:
[0011 ] 步驟一、統(tǒng)計待遠程控制計算機的IP地址,并將所述計算機上的應用程序和端口建立一一對應的關系,將所述端口與所述IP地址綁定作為IP端口;
[0012]步驟二、創(chuàng)建所述IP端口與TCP/IP協(xié)議棧間的通信接口,并對所述IP端口建立監(jiān)聽;
[0013]步驟三、當監(jiān)聽到向所述IP端口發(fā)送的超文本傳輸協(xié)議HTTP請求信息時,解析所述HTTP請求信息得到請求內(nèi)容并將其發(fā)送至對應的應用程序;
[0014]步驟四、應用程序響應所述請求內(nèi)容輸出響應結果。
[0015]優(yōu)選的是,所述的應用程序遠程控制方法中,所述步驟四中所述應用程序輸出響應結果的具體步驟為:
[0016]將所述響應結果轉(zhuǎn)化為HTTP響應報文;
[0017]通過所述通信接口將所述HTTP響應報文發(fā)送至請求端。應用程序執(zhí)行完遠程的應用請求并執(zhí)行該請求后,在通過TCP/IP協(xié)議將其執(zhí)行結果匯報給請求的來源端,使請求端了解應用請求的執(zhí)行情況。
[0018]優(yōu)選的是,所述的應用程序遠程控制方法中,所述步驟三中所述端口監(jiān)聽到用戶的HTTP請求信息后,還包括對所述HTTP請求信息分配過程:
[0019]預先在所述計算機中建立一線程池和任務池;
[0020]接收到所述HTTP請求信息后,遍歷所述線程池,將所述HTTP請求信息分配至所述線程池中的空閑線程;所述空閑線程解析所述HTTP請求信息并獲得請求內(nèi)容;
[0021]當所述線程池中沒有空閑線程時,所述HTTP請求信息存貯至所述任務池,等待空閑線程來領取該HTTP請求信息。
[0022]優(yōu)選的是,所述的應用程序遠程控制方法中,所述空閑線程解析所述HTTP請求信息的具體過程為:
[0023]從所述HTTP請求信息的數(shù)據(jù)流中讀取請求數(shù)據(jù)編碼;
[0024]解析所述請求數(shù)據(jù)編碼中的HTTP請求頭,確定所述請求內(nèi)容在所述請求數(shù)據(jù)編碼中的位置信息;
[0025]根據(jù)所述位置信息,從所述請求數(shù)據(jù)編碼中獲得所述請求內(nèi)容。HTTP請求信息的數(shù)據(jù)流中包括大量的數(shù)據(jù)信息,需要從HTTP請求信息的數(shù)據(jù)流中獲得請求的具體內(nèi)容,應用程序才能根據(jù)該具體內(nèi)容進行響應。因此需要從HTTP請求頭獲得請求內(nèi)容在數(shù)據(jù)流中的位置信息,再從數(shù)據(jù)流中解析處請求內(nèi)容。
[0026]優(yōu)選的是,所述的應用程序遠程控制方法中,所述步驟四中,所述應用程序利用反射機制或程序分流機制對所述HTTP請求信息作出響應。
[0027]優(yōu)選的是,所述的應用程序遠程控制方法中,所述HTTP請求信息包括:直接通過HTTP瀏覽器發(fā)送的HTTP請求信息,用戶利用應用程序發(fā)送的HTTP請求信息和通過WebServices發(fā)送的HTTP請求信息。HTTP請求信息包括多種來源,請求端可以通過網(wǎng)絡直接發(fā)送HTTP請求信息,也可以利用如QQ、微信等程序來發(fā)送HTTP請求信息,或通過如校內(nèi)網(wǎng)、百度等WebServices發(fā)送的HTTP請求信息。
[0028]本發(fā)明的有益效果如下:
[0029]1、所述的應用程序遠程控制方法中,通過建立應用程序?qū)腎P端口與TCP/IP協(xié)議棧間的通信連接,監(jiān)聽對應IP端口的HTTP請求,然后應用程序?qū)TTP請求作出響應,本方法不需要中間媒介或服務器,通過發(fā)送HTTP請求來實現(xiàn)對應用程序的遠程控制。
[0030]2、所述的應