色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>C語言|源代碼>利用GoAhead構建嵌入式web應用及源碼

利用GoAhead構建嵌入式web應用及源碼

2017-12-04 | rar | 1395KB | 次下載 | 免費

資料介紹

利用GoAhead構建嵌入式web應用及源碼

  利用GoAhead構建嵌入式web應用

  關鍵字:GoAhead, 嵌入式web服務器, web應用

  摘要:詳細介紹了開源嵌入式web服務器GoAhead的原理,并結合具體實例說明如何利用它構建嵌入式web應用。

  Key words: GoAhead, embedded web server, web application

  Abstract: This paper introduces the principle of open source embedded web server GoAhead, and explains how to build embedded web application using GoAhead combined with practical examples.

  1 簡介

  廉價的硬件,功能強大的32操作系統,以及無處不在的因特網,它們一起促成了網絡應用和設備的飛速增長。大量的設備連接到網絡上,于是人們希望通過一種通用、熟悉、快捷的方式來訪問和控制它們。嵌入式web服務器正好迎合了這種需求,它們嵌入在網絡設備之中,使用標準的瀏覽器就可以遠程訪問和控制它們。

  然而,并不是所有的web服務器都可以擔當如此重任,我們需要的是一個強大,安全,標準的,而且最好是久經考驗的嵌入式web服務器。這里將要介紹的GoAhead嵌入式web服務器能夠滿足所有這些需求,包括西門子,霍尼韋爾,惠普等大型企業都在使用GoAhead。

  2 嵌入式web服務器的要求

  2.1 易于與設備集成

  易于與設備集成包含兩個方面的意思,其一是將Web應用程序集成到實時操作系統,其二是可以在Web應用中輕松訪問硬件功能。由于GoAhead是開放源代碼的,因此這一點不難做到。

  2.2 支持將Web頁面存儲在ROM

  許多嵌入式系統并沒有文件系統,因此有必要將web頁面保存到ROM中。GoAhead支持對web頁面進行編譯并將它們鏈接到最終的可執行文件中。

  2.3 加密和用戶管理

  GoAhead服務器支持使用SSL進行數據加密和認證。同時,它也支持摘要認證機制,一種總是加密密碼的更安全的認證機制。用戶管理功能允許不同的用戶具有不同級別的訪問權限。

  除了上述要求之外,是否能夠快速、方便的生成動態頁面是衡量一個嵌入式web服務器的重要指標。GoAhead提供了多種方法編寫動態頁面,包括asp過程、GoForms過程和embedded JavaScript。GoAhead主要利用asp過程動態獲取系統信息然后顯示在頁面上,GoForms過程則主要用來處理用戶指令,例如控制設備和修改配置等。下面以一個動態顯示系統當前正在運行的進程信息的小型web應用程序為例,闡述如何利用GoAhead構建嵌入式web應用程序,特別是asp和GoForms過程的使用方法。

  3 動態頁面支持

  在嵌入式設備中,大部分web頁面都是動態生成的。生成動態頁面的方法主要有兩種,通過C代碼生成HTML標簽和在HTML頁面中嵌入表達式標簽。直接通過C代碼生成頁面的優點是靈活,但是卻犧牲了友好性,因為不到開始運行程序的最后一刻,你不可能知道這個頁面看起來會是個什么樣子。相比之下,第二種方法更加直觀,你可以使用你所喜歡的工具以所見即所得的方式編輯頁面,在必要的地方添加占位符,運行時它們會被動態產生的數據代替。GoAhead完全支持這兩種方式。

  為了方便的創建具有高度交互性的動態網頁,GoAhead提供了asp過程和GoForms過程兩種武器。它們實際上都與定義在服務器端的某個C函數綁定在一起,只是分工不同,asp過程用來生成顯示在頁面中的動態數據,而GoForms過程則用來處理用戶輸入和修改設置,它們一起構成了GoAhead的核心。

  3.1 ASP過程

  ASP最初用于IIS中,它是微軟開發的生成動態Web頁面的服務器端技術。現在已經被移植到包括GoAhead的各種平臺中,使用ASP的網頁的后綴一般為“.asp”。為了在Web頁面中嵌入ASP腳本,只需使用特殊的標簽“《%” 和 “%》”將腳本包裹起來。之所以使用ASP標簽目的是為了向用戶顯示動態內容,例如系統進程信息等。因為動態內容實際上是在執行特定的C函數生成的,所以需要將web頁面中的ASP標簽與特定的C函數聯系在一起。一般,整個過程大致可以分成以下三個步驟:

  1. 設計web頁面,動態內容使用特定的asp過程名替代,也稱其為一個占位符。

  2. 在某個.c文件中定義與asp過程對應的C函數

  3. 在main.c文件中的initWebs函數中使用websAspDefine注冊asp過程

  以清單1中的《% UpdateProcInfor(); %》標簽為例,此標簽的目的是為了顯示系統當前正在運行的進程的信息。獲取進程信息實際上是由位于ui.c中的UpdateProcInfo函數完成的,詳見清單2,它負責獲取系統進程信息,并格式化為HTML輸出。清單3中的websAspDefine函數將《% UpdateProcInfor(); %》標簽與UpdateProcInfo函數關聯起來,這樣當GoAhead解析home.asp頁面遇到《% UpdateProcInfor(); %》標簽時,控制權就會跳轉到UpdateProcInfor()函數,在輸出以HTML格式表示的進程信息后,控制權轉交給GoAhead繼續解析home.asp頁面。

  注意:asp過程必須符合原型:int AspProcName (int ejid, webs_t wp, int argc, chart_t **argv);

  其中,ejid參數作為JavaScript解釋器句柄可以用來調用JavaScript相關函數,例如ejGetVar和ejSetResult。wp參數作為瀏覽器連接的句柄,可以用來調用很多有用的GoAhead服務器函數,例如用來輸出HTML語句的websWrite等。argc和argv包含傳遞給asp過程的實參的個數和內容。

  //清單1:home.asp(省略了其它無關的部分,細節請參考附帶源代碼)

  《html》

  《head》

  《% WriteMetaElement(); %》

  《/head》

  …

  《form action=“/goform/UpdateConfig” method=“post”》

  《input type=“text” name=“interval” value=“” size=“7” /》

  《input type=“submit” name=“ok” value=“Update” /》

  《input type=“reset” name=“cancel” value=“Reset” /》

  《/form》

  《% UpdateProcInfo(); %》

  《/html》

  //清單2:ui.c

  #include “ui.h”

  #include “。.\webs.h”

  //以HTML格式輸出系統當前進程信息

  int UpdateProcInfo(int ejid, webs_t wp, int argc, char_t *argv)

  {

  return WriteProcPage(wp);

  }

  //根據用戶輸入改變刷新間隔時間設置

  void UpdateConfig(webs_t wp, char_t *path, char_t *query)

  {

  int tmpInterval=_ttoi(websGetVar(wp, L“interval”, L“-1”));

  if(tmpInterval》3)

  {

  s_interval=tmpInterval;

  }

  websRedirect(wp, L“home.asp”);

  }

  //清單3:main.c文件中的initWebs()函數

  #include “ui.h”

  //關聯asp標簽和C函數名字

  websAspDefine(T(“UpdateProcInfo”), UpdateProcInfo);

  websAspDefine(T(“WriteMetaElement”), WriteMetaElement);

  //關聯GoForms標簽和C函數名字

  websFormDefine(T(“UpdateConfig”), UpdateConfig);

  3.2 GoForms過程

  GoAhead實現了稱為GoForms的標準的通用網關接口(CGI)處理用戶提交的表單。與傳統的CGI方法不同,GoForms過程不是為每個瀏覽器連接都創建一個新的進程,而是通過與GoAhead服務器共享地址空間,于是可以直接訪問全部的請求上下文。GoForms處理器可以自動解析和訪問所有的POST和查詢數據,它也提供了一組API可以輕松訪問CGI變量。

  GoForms過程與ASP過程不同,它主要用來響應用戶輸入以更新系統設置或者執行特定的動作。在GoAhead中,GoForms實現為一個URL處理器,它會解釋以“/goform”開始的URLs。緊跟著“goform”之后的字符串定義了表單名字和用戶請求的細節。例如:“/goform/ UpdateConfig?interval=5”這個請求表示調用GoForms過程“ UpdateConfig ”,GoForms變量interval表示用戶設置的新刷新間隔時間。GoAhead對ASP過程和GoForms過程的處理十分類似,只是GoForms過程通過websFormDefine函數調用進行關聯,并且必須遵守原型“void GoFormsProcName(webs_t wp, char_t *path, char_t *query);”。完整的GoForms過程示例請參考列表1-3中的用來處理用戶請求的UpdateConfig過程。

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1電子電路原理第七版PDF電子教材免費下載
  2. 0.00 MB  |  1490次下載  |  免費
  3. 2單片機典型實例介紹
  4. 18.19 MB  |  92次下載  |  1 積分
  5. 3S7-200PLC編程實例詳細資料
  6. 1.17 MB  |  27次下載  |  1 積分
  7. 4筆記本電腦主板的元件識別和講解說明
  8. 4.28 MB  |  18次下載  |  4 積分
  9. 5開關電源原理及各功能電路詳解
  10. 0.38 MB  |  10次下載  |  免費
  11. 6基于AT89C2051/4051單片機編程器的實驗
  12. 0.11 MB  |  4次下載  |  免費
  13. 7藍牙設備在嵌入式領域的廣泛應用
  14. 0.63 MB  |  3次下載  |  免費
  15. 89天練會電子電路識圖
  16. 5.91 MB  |  3次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234313次下載  |  免費
  3. 2PADS 9.0 2009最新版 -下載
  4. 0.00 MB  |  66304次下載  |  免費
  5. 3protel99下載protel99軟件下載(中文版)
  6. 0.00 MB  |  51209次下載  |  免費
  7. 4LabView 8.0 專業版下載 (3CD完整版)
  8. 0.00 MB  |  51043次下載  |  免費
  9. 5555集成電路應用800例(新編版)
  10. 0.00 MB  |  33562次下載  |  免費
  11. 6接口電路圖大全
  12. 未知  |  30320次下載  |  免費
  13. 7Multisim 10下載Multisim 10 中文版
  14. 0.00 MB  |  28588次下載  |  免費
  15. 8開關電源設計實例指南
  16. 未知  |  21539次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935053次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537791次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234313次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233045次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191183次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183277次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138039次下載  |  免費
主站蜘蛛池模板: voyeurhit农村夫妻偷拍| 亚洲AV久久久噜噜噜久久| 成人亚洲乱码在线| 亚洲精品伊人久久久久| 欧美xx69| 黑人 尺寸 强行害怕 痛哭| 成人 迅雷下载| 伊人久久精品99热超碰| 无码人妻丰满熟妇区五十路久久| 免费看国产曰批40分钟| 好男人免费观看在线高清WWW| 办公室日本肉丝OL在线| 做你的爱人BD日本| 亚洲国产AV无码综合在线| 人妻仑乱少妇88MAV| 麻豆免费版| 精品一区二区三区AV天堂| 国产精品一区二区免费| 成年女人色毛片免费| 在线国内自拍精品视频| 亚洲AV久久无码高潮喷水| 三级黄色在线视频| 欧美特级另类xxx| 妹妹我要色| 麻1豆传媒2021精品| 久久AV亚洲精品一区无码网| 国产午夜精品一区二区三区| 国产成人一区二区三中文 | 熟女久久久久久久久久久| 欧美精品v欧洲高清| 毛片在线全部免费观看| 久久亚洲网站| 久久久久久免费观看| 久草色视频| 久久精品视在线观看2| 精品国产免费人成视频| 黄 色 网 站 免 费 涩涩屋| 狠狠爱亚洲五月婷婷av| 精品AV无码一二三区视频| 湖南电台在线收听| 狠狠色丁香久久婷婷综合_中|