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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于SX單片機(jī)實(shí)現(xiàn)WebServer和網(wǎng)絡(luò)協(xié)議棧

          基于SX單片機(jī)實(shí)現(xiàn)WebServer和網(wǎng)絡(luò)協(xié)議棧

          作者: 時(shí)間:2012-03-14 來(lái)源:網(wǎng)絡(luò) 收藏


          (1)棧對(duì)HTTP層的

          因?yàn)镠TTP層的下面是TCP層,也就是說(shuō)HTTP把TCP作為它的傳輸,所以那兩個(gè)TCP連接也為所用。理所當(dāng)然,TCP API的發(fā)送和接收函數(shù)也用來(lái)實(shí)行的請(qǐng)求和相應(yīng)命令。

          所有的服務(wù)器資源都存放在外部的E2PROM中,HTTP使用統(tǒng)一資源定位器來(lái)指定返回給客戶端的資源。統(tǒng)一資源定位器就像一個(gè)帶有目錄的文件路徑一樣,指定資源的路徑和擴(kuò)展名。棧并沒(méi)有像普通的解決方案那樣使用一般的文件系統(tǒng)來(lái)管理外部存儲(chǔ)器中的資源,而是采用了一種稱之為智能信息表來(lái)解決這個(gè)問(wèn)題。當(dāng)一個(gè)請(qǐng)求到來(lái)時(shí),一個(gè)8位的無(wú)用信息對(duì)統(tǒng)一資源定位器進(jìn)行運(yùn)算(8位字符加運(yùn)算),再將得到的數(shù)據(jù)乘以2,并把這個(gè)結(jié)果作為一個(gè)索引區(qū)中的一個(gè)值。如果在E2PROM中已經(jīng)建立了查找表,憑著這個(gè)值在E2PROM中去查表,找到相應(yīng)的資源并返回。用這種方法的好處是可以避免繁瑣的字符串的比較和將統(tǒng)一資源定位器直接存放在服務(wù)器中。這種文件系統(tǒng)的結(jié)構(gòu)如圖6所示。
           
          (2)E2PROM的編程

          啟動(dòng)以前,要先把資源文件下載到E2PROM中。在這個(gè)方案中采用RS232端口從電腦上傳輸資源文件。下載程序自動(dòng)從電腦中載入磁盤的目錄結(jié)構(gòu)并在E2PROM中創(chuàng)建E2PROM文件系統(tǒng)。

          38.jpg

          參考文獻(xiàn)

          1 52BD100 Data Sheet. UBICOM Corporation,2000
          2 SX52BD100 User Manual. UBICOM Corporation,2000
          3 Ethernet SX-Stack Internet Connectivity. UBICOM Corporation,2000
          4 Web Server Send Email Client Implementation with Ethernet as the Physical Layer. UBICOM Corporation,2000


          上一頁(yè) 1 2 3 4 5 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();