<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于嵌入式Web服務(wù)器的遠程控制系統的實(shí)現

基于嵌入式Web服務(wù)器的遠程控制系統的實(shí)現

作者: 時(shí)間:2010-08-05 來(lái)源:網(wǎng)絡(luò ) 收藏

2 的軟件結構
系統軟件主要包括操作系統的選取、網(wǎng)頁(yè)的配置、網(wǎng)頁(yè)的編輯、驅動(dòng)程序和應用程序的配置移植,軟件層次如圖3所示。
由于該處理器不具有MMU(存儲器管理單元)且需要完備以太網(wǎng)協(xié)議構建網(wǎng)頁(yè),故選擇開(kāi)源的μClinux操作系統。該操作系統從Linux2.o.發(fā)展而來(lái),專(zhuān)門(mén)應用于不具備MMU的微。該操作系統提供了3個(gè)服務(wù)器:httpd,Thttpd和BOA。其中功能最簡(jiǎn)單的是httpd.不支持認證、CGI。Thttpd和BOA服務(wù)器都支持認證、CGI(Common Gateway Interface,公共網(wǎng)關(guān)接口)等,但由于Thttpd服務(wù)器需要的資源比BOA大得多,故該系統最終采用BOA服務(wù)器作為控制的網(wǎng)頁(yè)服務(wù)器。
2.1 BOA服務(wù)器的配置
BOA是一個(gè)單任務(wù)的http服務(wù)器,安全性高、源代碼開(kāi)放、性能高。在μClinux的發(fā)行版中,在主目錄下的user目錄里,有BOA服務(wù)器的目錄,在example子目錄中,有2個(gè)文件boa.conf和mime.types,這里需要修改配置boa.conf文件,它是BOA服務(wù)器的參數配置文件,配置如下:


另外該系統將src目錄下的defines.h頭文件SERVER_ROOT宏定義設置為home目錄,即服務(wù)器目錄,配置操作系統時(shí),boa.conf和mime-.typs都必須復制到此服務(wù)器目錄下,從而完成服務(wù)器的配置。
2.2 服務(wù)器與客戶(hù)端動(dòng)態(tài)交互的
在動(dòng)態(tài)網(wǎng)頁(yè)交互設計中,主要有CGI(Common Gateway Interface),PHP(Personal Home Page),ASP(Active Server Page)和JSP(Java Server Page)4種技術(shù)。在Linux下動(dòng)態(tài)網(wǎng)頁(yè)通常選擇CGI技術(shù)。CGI稱(chēng)為公共網(wǎng)關(guān)接口,是一段運行于服務(wù)器上的程序,可以將客戶(hù)端瀏覽器遞交的信息傳遞給服務(wù)器,服務(wù)器則會(huì )啟動(dòng)對應CGI程序去執行,最終可將結果再反饋給客戶(hù)端。CGI程序的編寫(xiě)可以采用任何編程語(yǔ)言,只要這種語(yǔ)言具有標準輸入、輸出和環(huán)境變量。由于C語(yǔ)言具有較強的平臺無(wú)關(guān)性,因此該系統采用C語(yǔ)言來(lái)編寫(xiě)CGI程序。
動(dòng)態(tài)網(wǎng)頁(yè)是通過(guò)網(wǎng)頁(yè)內嵌表單的方式進(jìn)行信息傳遞的。該系統首先采用網(wǎng)頁(yè)編輯軟件Dreamweaver編輯登陸界面index.html及控制界面remote.html。在編輯表單選項時(shí)由action屬性指向相應CGI程序路徑,由method屬性決定提交數據的方式是GET方式還是POST方式??蛻?hù)端傳送到服務(wù)器的數據采用URL編碼的方式傳送,例如參數采用name=value的形式,每對之間用”&”連接。特殊字符用”%”加一個(gè)十六進(jìn)制數字編碼,輸入的空格用”+”來(lái)表示等,所以服務(wù)器端的CGI在接收數據時(shí)需經(jīng)過(guò)解碼操作。
環(huán)境變量在CGI程序設計中很重要,客戶(hù)端和服務(wù)器端都將信息存儲在某些變量中,環(huán)境變量有3類(lèi):與服務(wù)器相關(guān)的環(huán)境變量、與客戶(hù)端相關(guān)的環(huán)境變量以及與請求相關(guān)的環(huán)境變量。其中最常用的環(huán)境變量有REQUEST_METHOD記錄請求方式,QUERY_STRING存儲傳遞的數據,CO-NTENT_LENGTH傳遞數據的長(cháng)度。
編程時(shí)先創(chuàng )建數據結構entry,用來(lái)記錄要使用的變量和變量名。

當采用GET方式傳遞信息時(shí),可使用如下代碼獲得傳輸的數據:

當采用POST方法傳遞信息時(shí),可使用如下代碼獲得傳輸的數據:

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>