基于Web Server的無線視頻終端在線配置方案與實現(xiàn)
基于HTTP協(xié)議的客戶/服務器模式的信息交換分4個過程,建立連接、發(fā)送請求信息、發(fā)送響應信息、關閉連接。Web服務器運行時,一直監(jiān)聽TCP 80端口(WWW的缺省端口),如接收到連接就將Web文本發(fā)送給客戶機。
雖然有許多可用的開源Web服務器實現(xiàn)方法,如THHPD、GOAHEAD、BOA等,但大多數(shù)開源的Web服務器因過于龐大而不便于移植。將 Web服務器嵌入到一個獨立設備或應用中時,該Web服務器的實現(xiàn)應該盡量簡單。LibHTTPD正是這樣的一個開源的Web服務器軟件[5]。
使用LibHTTPD提供的訪問內容既可以是靜態(tài)的網(wǎng)頁,也可以是調用C函數(shù)動態(tài)產(chǎn)生的。LibHTTPD提供了許多友好的程序接口,用戶可以很方便地將自己的Web內容加入到程序當中。
圖3的代碼是程序的主體,先完成Web Server的初始化,然后在循環(huán)體內對Web的連接請求進行處理。當調用httpdProcessRequest()函數(shù)時,程序將對客戶端的請求內容進行識別,確定Web服務器內是否有所需的內容,并采取相應的操作將被請求的內容發(fā)送到客戶端。
圖3 Httpdmain()線程
3、具體方法
首先在程序中創(chuàng)建Httpdmain()線程,這就將Web服務器程序嵌入了系統(tǒng)中。其他主機通過瀏覽器可以瀏覽該Web服務器所提供的演示內容。只要在瀏覽器的地址欄輸入Web服務器的IP地址后,得到一個設置選項的頁面,設置相應的參數(shù)控制整個程序(還可以通過添加相關的程序進行身份認證)。
由于需要使用的配置參數(shù)較少,本系統(tǒng)的軟件的目標代碼大小一般在2~3 MByte,而本系統(tǒng)選用的Flash Memory是Intel Flash芯片E28F320J3,其內部分為32個Blocks,總共4 MB空間,每個Block128 K。所以將Flash的最后一個Block作為系統(tǒng)配置參數(shù)的存放區(qū)域,系統(tǒng)每次啟動后都從該Block中讀出參數(shù)的配置信息,并按此參數(shù)運行。利用 Web server實現(xiàn)對系統(tǒng)的設置,設置之后的配置信息需回寫該Block,以便下次啟動時按新的參數(shù)配置運行。對Flash的最后一個Block讀寫時采用一個結構體來管理系統(tǒng)配置參數(shù),系統(tǒng)設計時將可能用到的參數(shù)均提取出來置于該結構,以方便以后功能擴展,該結構定義如圖4所示。
配置參數(shù)結構體
圖4 配置參數(shù)結構體
參數(shù)配置時的具體執(zhí)行步驟:
(1)PC、WLAN AP和視頻終端三者組成如圖5的網(wǎng)絡拓撲,把PC和WLAN AP按照視頻終端中預先寫入的內網(wǎng)服務器IP配置成一個可以通信的局域網(wǎng);
tcp/ip相關文章:tcp/ip是什么
評論