新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 在應(yīng)用系統(tǒng)中嵌入WWW服務(wù)功能的實(shí)現(xiàn)方法

        在應(yīng)用系統(tǒng)中嵌入WWW服務(wù)功能的實(shí)現(xiàn)方法

        作者: 時(shí)間:2009-04-09 來源:網(wǎng)絡(luò) 收藏

          (1)主頁模板的生成。根據(jù)客戶顯示的需求,采用HTML標(biāo)準(zhǔn),創(chuàng)建在Web瀏覽器上可以瀏覽的主頁模板。對(duì)于主頁模板中需要實(shí)時(shí)更新的數(shù)據(jù)和根據(jù)客戶需求可能會(huì)改變的數(shù)據(jù),采用相應(yīng)的變量代替。

          (2)公共數(shù)據(jù)主頁的生成。啟動(dòng)后,將事先生成的主頁模板加載到內(nèi)存中,根據(jù)系統(tǒng)的配置,對(duì)部分公共變量用實(shí)際的內(nèi)容(如各路通信線路的名稱等)進(jìn)行替換,生成公共數(shù)據(jù)主頁。

          (3)更新數(shù)據(jù)的生成。系統(tǒng)通過各類數(shù)據(jù)采集板采集各路通信線路中實(shí)時(shí)變化的接收電壓、發(fā)送電壓和誤碼等數(shù)據(jù),并將這些采集的數(shù)據(jù)實(shí)時(shí)送到數(shù)據(jù)處理器進(jìn)行處理,生成客戶需要的收電平、發(fā)電平和誤碼率等實(shí)時(shí)更新數(shù)據(jù)。

          (4)公共數(shù)據(jù)主頁的實(shí)時(shí)更新。數(shù)據(jù)處理器生成實(shí)時(shí)更新的數(shù)據(jù)后,將公共數(shù)據(jù)主頁中該數(shù)據(jù)的對(duì)應(yīng)項(xiàng)進(jìn)行更新替換,公共數(shù)據(jù)主頁的實(shí)時(shí)更新。

          (5)客戶數(shù)據(jù)主頁的生成。當(dāng)收到客戶請(qǐng)求的發(fā)送主頁消息后,根據(jù)客戶的權(quán)限和需求對(duì)公共數(shù)據(jù)主頁中需要保密、限制的內(nèi)容以及客戶主頁的刷新頻率進(jìn)行更新處理,為各級(jí)別的客戶生成各自的客戶數(shù)據(jù)主頁。這樣處理后對(duì)于不同客戶的同一請(qǐng)求,發(fā)送的客戶主頁信息就可能不同。

        1.2.2 應(yīng)答客戶請(qǐng)求過程

          應(yīng)答客戶請(qǐng)求的過程主要是在TCP端口(80)上偵聽客戶的連接。當(dāng)連接建立后,為該客戶的請(qǐng)求建立一個(gè)線程,讀取并解析客戶從Web瀏覽器發(fā)送來的請(qǐng)求,并對(duì)請(qǐng)求進(jìn)行安全和權(quán)限控制,應(yīng)答客戶請(qǐng)求,最后關(guān)閉此客戶的連接并退出該線程。具體過程如下:

          (1)偵聽客戶請(qǐng)求。應(yīng)用系統(tǒng)啟動(dòng)后首先初始化網(wǎng)絡(luò)設(shè)置,并在80端口打開一個(gè)被動(dòng)的TCP連接,等待接受客戶的連接。

          (2)創(chuàng)建客戶請(qǐng)求處理線程。在收到客戶連接后,應(yīng)用系統(tǒng)為該客戶請(qǐng)求創(chuàng)建一個(gè)線程,用來解析、處理、應(yīng)答客戶的請(qǐng)求。

          (3)解析客戶請(qǐng)求。應(yīng)用系統(tǒng)根據(jù)請(qǐng)求消息的格式解讀請(qǐng)求消息,如果客戶所請(qǐng)求的動(dòng)作不能實(shí)施或者URI無效,返回一個(gè)錯(cuò)誤狀態(tài)并關(guān)閉該連接,否則對(duì)客戶進(jìn)行安全控制。

          (4)安全控制。根據(jù)客戶的IP地址或者登錄信息,判別客戶的權(quán)限。如果客戶不具備所請(qǐng)求動(dòng)作的權(quán)限則返回權(quán)限不足信息并關(guān)閉該連接,否則對(duì)客戶請(qǐng)求進(jìn)行處理,同時(shí)記錄客戶請(qǐng)求內(nèi)容、時(shí)間等信息。

          (5)處理客戶請(qǐng)求。根據(jù)客戶的權(quán)限和請(qǐng)求,對(duì)構(gòu)建于內(nèi)存中的公共數(shù)據(jù)主頁信息進(jìn)行進(jìn)一步處理,生成客戶所需要的客戶數(shù)據(jù)主頁。

          (6)應(yīng)答客戶請(qǐng)求。對(duì)于客戶的請(qǐng)求為Get方式時(shí),打開該URI所指定的被程序構(gòu)建于內(nèi)存之中客戶數(shù)據(jù)主頁,在發(fā)送以前,應(yīng)用系統(tǒng)為客戶數(shù)據(jù)主頁建立一個(gè)適當(dāng)?shù)念}頭區(qū),其后放一個(gè)空白行,然后將該題頭區(qū)發(fā)送出去,最后發(fā)出客戶數(shù)據(jù)主頁。對(duì)于客戶的請(qǐng)求為Post方式時(shí),根據(jù)解析后的信息對(duì)應(yīng)用系統(tǒng)進(jìn)行相應(yīng)的設(shè)置和操作,客戶的遠(yuǎn)程控制。

          (7)關(guān)閉客戶連接,退出線程。

        2 關(guān)鍵技術(shù)

        2.1處理客戶請(qǐng)求

        2.1.1 客戶請(qǐng)求

          當(dāng)客戶通過Web瀏覽器向應(yīng)用系統(tǒng)發(fā)出請(qǐng)求時(shí),需要指定一個(gè)全球資源定位器(URL)。URL是某個(gè)特定資源的Web名,用于定位Internet上面的資源,一個(gè)URL的基本格式為:

          協(xié)議://主機(jī)名[:端口]/路徑

          Web瀏覽器分析該URL,提取協(xié)議(這里是HTTP)、主機(jī)名以及全球資源路徑(URI),并使用提取的協(xié)議向具有該主機(jī)名的網(wǎng)絡(luò)主機(jī)發(fā)起連接。當(dāng)連接建立后,Web瀏覽器發(fā)送請(qǐng)求消息,該消息包含一些可選配的題頭,用于標(biāo)識(shí)該客戶和列出可接受的資源類型。應(yīng)用系統(tǒng)發(fā)送響應(yīng)消息,該消息有一個(gè)狀態(tài)行,后隨一個(gè)或多個(gè)題頭,然后是所請(qǐng)求的資源。

        2.1.2 解析客戶請(qǐng)求

          對(duì)客戶請(qǐng)求的解析主要是應(yīng)用系統(tǒng)根據(jù)HTTP消息的格式,從客戶發(fā)送來的請(qǐng)求消息中提取客戶請(qǐng)求的內(nèi)容,并向客戶發(fā)送響應(yīng)消息。HTTP消息是客戶發(fā)給應(yīng)用系統(tǒng)的請(qǐng)求或者由應(yīng)用系統(tǒng)傳給客戶的應(yīng)答,消息格式為:

          Start-line(開始行)

          Message-headers(消息題頭)

          CR LF(換行回車符,即空一行)

          Message-body(消息正文)

          一個(gè)請(qǐng)求包括三部分:開始行、題頭以及正文。開始行是必須有的,題頭及正文則是可選的。在客戶傳給應(yīng)用系統(tǒng)的請(qǐng)求中,開始行就是請(qǐng)求行;在應(yīng)用系統(tǒng)的應(yīng)答中,則是狀態(tài)行。



        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 库伦旗| 武鸣县| 湖州市| 长岭县| 辛集市| 伊金霍洛旗| 广水市| 丘北县| 宽甸| 马公市| 麻栗坡县| 道孚县| 汝州市| 祁门县| 六安市| 荔波县| 奉节县| 太仓市| 读书| 安义县| 广宗县| 潼南县| 高雄市| 醴陵市| 陆川县| 承德市| 淮北市| 章丘市| 黄平县| 托克逊县| 荥经县| 高雄县| 阿鲁科尔沁旗| 安仁县| 灵山县| 旌德县| 定兴县| 房山区| 彭山县| 江永县| 石楼县|