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