<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于PXA270嵌入式Web服務器的設計與實現(xiàn)

          基于PXA270嵌入式Web服務器的設計與實現(xiàn)

          作者: 時間:2009-07-06 來源:網絡 收藏

          隨著系統(tǒng)的發(fā)展和Internet的普及,系統(tǒng)接入網絡已經成為系統(tǒng)應用的一個重要方向和必然結果,嵌入式是嵌入式系統(tǒng)網絡化應用的重要方面。傳統(tǒng)的8位單片機由于其運行速度、驅動能力、功耗等問題已經越來越不能滿足用戶的需求。ARM處理器以其高性能、低功耗、豐富驅動等功能成為新的嵌入式電子產品開發(fā)的理想選擇。同時為了對系統(tǒng)資源的更好分配、復雜任務的更好調度,引入嵌入式操作系統(tǒng)。ARM-Linux具有很好的移植性、穩(wěn)定性、強大的協(xié)議支持功能和豐富的設備支持功能,現(xiàn)在被廣泛應用于嵌入式操作系統(tǒng)。本系統(tǒng)采用INTEL Xscale架構的嵌入式處理器與ARM-Linux相結合構建一個嵌入式。

          本文引用地址:http://www.ex-cimer.com/article/152434.htm

          1 嵌入式技術

          1.1 嵌入式Web服務器體系結構

          嵌入式Web服務器的體系結構如圖1所示。其中,客戶端和Web服務器之間的通信協(xié)議采用HTTP 1.1;嵌人式實時多任務操作系統(tǒng)提供TCP/IP協(xié)議支持;Web服務器與數(shù)據(jù)庫服務器間的交互接口為CGI(Common Gateway Interface)。

          1.2 嵌入式Web服務器工作流程

          客戶端使用Web瀏覽器與Web服務器進行通信。Web服務器中使用HTTP協(xié)議,HTTP(超文本傳輸協(xié)議)為標準WWW傳輸協(xié)議,使用可靠的TCP連接,通常采用端口80。HTTP是一個簡單的協(xié)議,每次連接只完成一個請求??蛻舳伺cWeb服務器交換數(shù)據(jù)之前,首先用TCP/IP建立連接,服務器端程序建立TCP類型SOCKET并在80端口進行監(jiān)聽,服務器在接收到用戶端的請求后,解析客戶請求的HTTP協(xié)議頭、分析客戶的請求,根據(jù)客戶的請求返回相應的數(shù)據(jù)。這些數(shù)據(jù)可來自靜態(tài)主頁和文件,也可以根據(jù)請求動態(tài)產生。由此可見,接收客戶端請求、解析客戶端請求、響應客戶端請求、向客戶端回送請求的結果是Web服務器所完成的主要任務。

          2 模塊功能分析

          系統(tǒng)分為客戶連接處理模塊、客戶請求處理模塊、協(xié)議處理模塊3個模塊。

          2.1 客戶連接處理模塊功能

          連接處理模塊如圖2所示。此模塊完成第一步客戶連接請求的處理,并將請求信息傳遞給客戶請求解析處理模塊去處理。

          模塊工作流程如下:

          (1)打開文件描述字,建立文件描述符;

          (2)讀取連接信息、獲取客戶信息;

          (3)調用客戶請求解析模塊,關閉文件流。

          2.2 客戶請求解析處理模塊功能

          此模塊在連接模塊完成對客戶請求信息進行解析、處理。模塊工作流程如下:

          (1)對用戶信息進行解密;

          (2)查找用戶請求資源是否存在;

          (3)判斷用戶請求類型,選取不同的協(xié)議進行數(shù)據(jù)回傳。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁 1 2 3 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();