嵌入式WEB伺服器編寫方法

2021-06-18 12:36:22 字數 1606 閱讀 3578

(1)編寫網頁檔案

(2)生成乙個*.c原始檔,例如lwip,uip 均是通過fsdata生成,該*.c檔案裡面內容主要是很多陣列,每個陣列對應乙個網頁或,並通過鍊錶結構把陣列鏈結起來。

(3)確定入口預設網頁

(4)網頁輸出--即將嵌入式模組的資訊顯示到web上  (ssi)

方法:收到"get"命令後,在接受的資料中查詢顯示資訊對應的標籤,並用自己的「資訊」替換即可

例如web原始碼中有溫度標籤"tag:tmp1"

tag:tmp1℃

類似**

itoa(cpu_temperature%100, text+i, 10);

replace_tag(outbuf + 54, "tag:tmp1", text);

(5)網頁輸入--即將頁面的資訊輸入到嵌入式模組中 (cgi)

方法:收到"post"命令後,在接受的資料查詢"name=", 再對=後字串進行解析

例如web原始碼中有"name=switch"

"  滅 類似**

ptr = strstr(tcp_data, "switch=");

if (*ptr == '1')    

else if (*ptr == '0')

ssi簡介:

ssi(server side include),通常稱為伺服器端嵌入,是一種類似於asp的基於伺服器的網頁製作技術。大多數(尤其是基於unix平台)的web伺服器如netscape enterprise server等均支援ssi命令。

在乙個通常以.shtml為副檔名的ssi檔案中,標準的html編碼會被直接送到瀏覽器上,而內嵌perl語言形式的ssi命令則先被網路伺服器解釋執行,如果是標準輸出的話,輸出資訊也將作為標準的html而被送至瀏覽器。

ssi簡單應用例項:

〈html〉

〈head〉〈title〉my first ssi page〈/title〉〈/head〉

〈body〉

歡迎您(於〈!--# echo var="date_local" --〉)訪問本**。

〈/html〉

標記在上面文件中的「〈!--# --〉」結構表明了ssi命令會被伺服器翻譯執行,而不是直接送到客戶端。我們可以在瀏覽器中用「檢視→原始檔"觀察源**:

〈html〉

〈head〉〈title〉my first ssi page〈/title〉〈/head〉

〈body〉

歡迎您(於dec 06 1999)訪問本**。

〈/html〉

我們發現,文件中的html被直接傳到了客戶端,而ssi命令得到了執行。ssi**在客戶端是不可見的,客戶端只能看到它執行的效果。

cgi簡介

common gateway inte***ce,簡稱cgi。在物理上是一段程式

,執行在伺服器

上,提供同客戶端

把這些資訊傳送到伺服器

的cgi目錄下特定的cgi程式

中,於是cgi程式在伺服器上按照預定的方法進行處理。

lwip較新**

嵌入式Web伺服器移植

或者 最新發行版本 0.94.13 解壓 tar xzf boa 0.94.13.tar.gz 直接執行src configure檔案 a 修改 cc gcc 為 cc usr local arm 2.95.3 bin arm linux gcc b 修改 cpp gcc e 為 cpp usr l...

嵌入式Web伺服器移植

文章一僅供個人學習之用,請勿用於他途。n printf n printf n printf n printf n exit 0 交叉編譯生成helloworld.cgi arm softfloat linux gnu gcc o helloworld.cgi helloworld.c 將hellow...

嵌入式web伺服器的實現

1 引言 呼叫 open 開啟裝置,利用 ioctl 對裝置進行控制,比如設定對比度 亮度 調色盤,訪問模式等等。主要 如下 int fd open dev v4l video0 o rdwr 開啟裝置 獲取裝置的基本資訊 裝置名稱 支援的最大最小解析度 訊號源資訊等 ioctl vd fd,vid...