新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > Web服務在TM1300上的實現

        Web服務在TM1300上的實現

        作者:蘇玉潔 李學明 時間:2008-08-04 來源:電子技術應用 收藏
          接下來需要從HTTP頭信息[2]中,找到Content-Length這一行。如果Content-Length=0,則表明后面沒有參數,否則在這個HTTP數據包中包含用戶提交的信息,并且信息的長度值就是Content-Length的值。

          假定用戶在HTTP消息中帶有消息體,那么首先要找到一個空白行(即:Cache-Control:no-cache后面一行),因為它是消息體和HTTP頭信息的分界線。接下來需要分析消息主體的內容。這方面的工作非常簡單,就是根據字符‘&’將文本串分為三部分,即:xsize=352,ysize=288,submit=%CC%E1%BD%BB。然后根據字符‘=’進一步區分參數的名稱和對應的值。通過分析知道參數xsize的值為352,ysize的值為288。

          通過對HTTP消息的解析,可以確定用戶需要完成的操作及操作所需要的參數,進而可以對底層的硬件或軟件進行控制,以完成用戶的請求。

          由此可以看出,服務器程序的核心工作就是對HTTP數據包解析,決定下一步的處理。針對上面的例子,服務程序首先要對視頻輸入輸出接口進行控制,改變輸入輸出圖像的尺寸;接下來還要輸出HTTP數據包送給IE瀏覽器,圖3給出了服務程序產生的HTTP數據包及用戶看到的界面。

        本文引用地址:http://www.104case.com/article/86570.htm

          圖3(a)是服務器回送給IE瀏覽器的HTTP消息。第一行HTTP/1.1200OK通知IE瀏覽器,剛才的請求已經被服務器處理。下面一行是服務器的處理時間。Content-type:text/html這一行通知IE瀏覽器HTTP消息主體部分傳送的內容是純文本格式的HTML網頁。后面的空行是HTTP頭信息與HTTP消息主體的分界線。當IE瀏覽器獲取HTTP頭信息后,就可以根據消息主體的格式調用對應的HTML解析器對內容進行解析,并將解析的結果顯示在瀏覽器的窗口中。

          3服務進程與其他進程間的通信

          由于處理平臺需要同時進行音頻、視頻處理及網絡通信,即在同一個時刻需要有多個任務同時運行,并且這些任務之間需要進行通信,例如:當用戶改變了系統編碼參數后,Web服務器需要通知視頻編碼進程,讓它們在后續的編碼過程中采用新的參數。由于運行pSOS系統,而pSOS只有進程,沒有線程,因此Web服務程序作為一個單獨的進程來運行。當需要與其他任務通信時,采用了信號量方法。圖4以Web服務進程和視頻編碼進程之間的通信為例,給出了系統實現進程間通信的過程。

          首先在Flash中開辟一塊區域,專門用來存儲所需修改的參數。當Web服務器接收到客戶端提交的修改參數的請求時,采用以下步驟進行處理:(1)Web服務進程將信號量鎖定;(2)Web服務進程將用戶提交的參數寫入到參數區;(3)Web服務器進程釋放信號量;(4)Web服務進程向視頻處理進程發送信號[3],通知視頻編碼進程讀取參數;(5)視頻處理進程將信號量鎖定;(6)視頻處理進程讀取參數;(7)視頻處理信號釋放信號量。經過一系列操作后,Web服務器進程和視頻編碼進程間的通信結束,完成了一次參數的修改。Web服務進程與音頻編碼進程間的通信與上述過程類似。

          本文重點探討了在上實現嵌入式Web服務器的方法與具體實現中的一些關鍵問題。通過在現有的處理平臺中增加Web服務,用戶可以采用Web頁面的方式來監控硬件的運行狀態,并能對系統運行參數進行在線修改,降低了系統的使用難度,提高了交互的友好性,進而增強了系統的功能和可用性。目前,筆者開發的Web服務已經在上穩定運行,下一步工作主要是擴充其功能,并提供網管功能。

          參考文獻

          1RFC822.StandardforARPAInternetTextMessages[s].1982
          2RFC2616.HypertextTransferProtocol----HTTP/1.1[s].1999
          3W.RichardStevens著,尤晉元譯.UNIX環境高級編程.北京:機械工業出版社,2000


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 义马市| 东平县| 石屏县| 仲巴县| 威信县| 榆树市| 平度市| 九龙县| 九寨沟县| 汉沽区| 阿瓦提县| 徐汇区| 苏尼特右旗| 洛南县| 丽江市| 博湖县| 左贡县| 镇康县| 云霄县| 通化县| 仲巴县| 仙游县| 卓尼县| 汉源县| 北票市| 田阳县| 澜沧| 遂平县| 湟源县| 绍兴市| 通城县| 正宁县| 介休市| 南雄市| 宣汉县| 南开区| 司法| 宁夏| 社旗县| 大悟县| 阳信县|