freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設計論文-嵌入式web服務器的設計與實現(xiàn)-資料下載頁

2025-06-02 01:24本頁面
  

【正文】 文件在 EEPROM 中存放的開始地址 */ unsigned long check。 /* 文件的校驗和 ,可選 */ char name[ROM_FILENEME_LEN ]。 /* 存儲文件名的字符數(shù)組 ,包含擴展名 */ }EEPROM_FILENAME。 實際使用的時候還應該編制 EEPROM 本身的讀寫函數(shù)以及操作文件系統(tǒng)的API 函數(shù)??梢韵仍?PC 上編制好網(wǎng)頁文件,然后把網(wǎng)頁代碼寫到 EEPROM 里。一般把缺省頁面的文件 (如 )作為 EEPROM 中的第一個文件,以方便查找。本系統(tǒng)實現(xiàn)一個簡單的 Web頁面顯示功能,將該頁面的代碼定義好后寫到 EEPROM的固定起始地址。 HTTP 頭部代碼和該頁面的 HTML 代碼如下: const static char HTTP_HTML_HEAD[] =Contenttype: text/html\r\n\r\n。 static unsigned char HTML_PAGE[]=” html\ head\ title嵌入式 WEB 服務器的實現(xiàn) /title\ /head\ body\ p align=\center\嵌入式 WEB 服務器的實現(xiàn) br/p\ 無錫科技職業(yè)學院嵌入式系統(tǒng)工程專業(yè) 畢業(yè)設計(論文) 22 p align=\center\a href= 點 擊 進 入 a/pbr\ p align=\center\嵌入式實 驗室 /pbr\ /body\ /html” 4..4 嵌入式 Web 服務器的工作流程 在 181。C/OSII 操作系統(tǒng)下,創(chuàng)建服務主函數(shù)偵聽連接,主函數(shù)在接受客戶連接時通過調(diào)用子函數(shù)來處理 HTTP 事務。建立的嵌入式 Web 服務器 HTTP 連接的流程圖如圖 所示。服務器主函數(shù)監(jiān)聽綁定的端口,一旦有瀏覽器的請求到達,則建立連接并返回新的套接口描述符交給服務處理子函數(shù),以處理用戶的每個具體請求。下面分析嵌入式 Web 服務器端如何對請求數(shù)據(jù)報文進行處理,并將數(shù)據(jù)封裝后返回頁面。 圖 嵌入式 Web 服務器 HTTP 連接的工作流程 1. 解析請求數(shù)據(jù)報文 當客戶端瀏覽器訪問嵌入式 Web 服務器時,首先向服務器發(fā)出請求,服務器收到請求后,對請求數(shù)據(jù)報文進行解析。本文的設計方案中, Web 服務器只接受GET 請求方法。請求數(shù)據(jù)報文中的其他元信息的結(jié)構(gòu)比較復雜,處理較為繁瑣,創(chuàng)建 socket 綁定 IP和端口( bind) 為連接設定偵聽隊列( listen) 等待客戶連接請求( accept) 連接建立后調(diào)用處理函數(shù) 關(guān)閉套接字( close) 子函數(shù)(連接處理) 初始化任務參數(shù) 接收客戶端的信息( recv) 根據(jù)客戶端的請 求完成信息的搜集 給客戶端發(fā)送數(shù)據(jù)( send) 關(guān)閉套接字( close) 主函數(shù) 無錫科技職業(yè)學院嵌入式系統(tǒng)工程專業(yè) 畢業(yè)設計(論文) 23 但在本設計中處理與否對系統(tǒng)性能影響很小,因此也不做處理。 2. 封裝應答數(shù)據(jù)報文 嵌入式 Web 服務器中的 EEPROM 中存儲了靜態(tài)的 HTML 頁面,應答時將它取出放到應答報文的實體中。應答報文 的協(xié)議版本號、應答狀態(tài)碼、應答狀態(tài)碼說明是一些相對固定的信息,接收的元信息部分的數(shù)據(jù)不是必需的,故可以只給出部分確定的信息(如服務器類型、內(nèi)容類型等)。這樣所有應答數(shù)據(jù)報文的頭部都可以固定不變地存儲到 EEPROM 中,需要時直接將它取出放到應答報文的頭部。 應答數(shù)據(jù)報文的實體部分包含動態(tài)讀取的頁面文件。本設計是這樣處理的:首先從 EEPROM 中讀取封裝好的 HTTP 報文的頭部,然后再從 EEPROM 中讀出 HTML頁面的數(shù)據(jù),并將讀出來的數(shù)據(jù)寫入到 HTTP 報文的實體部分。最后將組裝好的完整的 HTTP 應答報文發(fā)送回客戶 端。 嵌入式 Web服務器的實現(xiàn) 根據(jù) WEB 服務器的工作流程設計應用程序,該服務器端應用程序包含建立網(wǎng)絡連接,響應 HTTP 請求和關(guān)閉網(wǎng)絡連接。該應用程序通過 API 函數(shù)實現(xiàn),其中包含兩個主要的函數(shù): main( )函數(shù)主要負責一些初始化工作和網(wǎng)路連接的建立,process_connection( )負責處理 HTTP 請求的響應工作。在文件 中包含網(wǎng)絡連接類型、狀態(tài)、和數(shù)據(jù)緩沖區(qū)結(jié)構(gòu)體和網(wǎng)絡連接結(jié)構(gòu)體的聲明,還有 Socket API 函數(shù)的聲明,它們的形式如下: define NETCONN_TCP 0x01 /*連接類型為 TCP 連接 */ enum conn_state { /*網(wǎng)絡連接狀態(tài) */ NETCONN_NONE, NETCONN_WRITE, NETCONN_ACCEPT, NETCONN_RECV, NETCONN_CONNECT, NETCONN_CLOSE }。 struct buf { /*網(wǎng)絡數(shù)據(jù)緩存結(jié)構(gòu)體 */ struct pbuf *p, *ptr。 無錫科技職業(yè)學院嵌入式系統(tǒng)工程專業(yè) 畢業(yè)設計(論文) 24 struct ip_addr *fromaddr。 INT16U fromport。 }。 struct conn { /*網(wǎng)絡連接結(jié)構(gòu)體 */ INT8U type。 enum conn_state state。 struct tcp_pcb *tcp。 sys_mbox_t mbox。 sys_mbox_t recvmbox。 sys_mbox_t acceptmbox。 sys_sem_t sem。 }。 INT8S buf_data (struct buf *buf, void **dataptr, INT16U *len)。 struct conn * conn_new (enum conn_type type)。 INT8S conn_delete (struct conn *conn)。 INT8S conn_bind (struct conn *conn, struct ip_addr *addr, INT16U port)。 INT8S conn_connect (struct conn *conn, struct ip_addr *addr, INT16U port)。 INT8S conn_listen (struct conn *conn)。 struct conn * conn_accept (struct conn *conn)。 struct buf * conn_recv (struct conn *conn)。 INT8S conn_send (struct conn *conn, struct buf *buf)。 INT8S conn_write (struct conn *conn, void *dataptr, INT16U size)。 INT8S conn_close (struct conn *conn)。 WEB 服務器端的應用程序主要代碼如下: 無錫科技職業(yè)學院嵌入式系統(tǒng)工程專業(yè) 畢業(yè)設計(論文) 25 static void process_connection(struct conn *conn) { struct buf *inbuf。 char *rq。 int len。 inbuf = conn_recv(conn)。 /*從 inbuf 中讀取長度為 len 的數(shù)據(jù) */ buf_data(inbuf, amp。rq, amp。len)。 /* 檢查請求為 HTTP GET /\r\n. */ if(rq[0] == 39。G39。 amp。amp。 rq[1] == 39。E39。 amp。amp。rq[2] == 39。T39。 amp。amp。 rq[3] == 39。 39。 amp。amp。 rq[4] == 39。/39。 amp。amp。 rq[5] == 39。\r39。 amp。amp。rq[6] == 39。\n39。) { /* 發(fā)送 HTTP 頭部 */ conn_write(conn, HTTP_HTML_HEAD, sizeof(HTTP_HTML_HEAD))。 /* 發(fā)送 WEB頁面 . */ conn_write(conn, HTML_PAGE, sizeof(HTML_PAGE))。 /*關(guān)閉網(wǎng)絡連接 */ conn_close(conn)。 } } int main() { struct conn *conn, *newconn。 /*創(chuàng)建一個新的 TCP 連接 */ conn = conn_new(NETCONN_TCP)。 /* 綁定該連接到本地任一地址的 80 端口 */ conn_bind(conn, NULL, 80)。 /* 使該連接進入偵聽狀態(tài) */ conn_listen(conn)。 無錫科技職業(yè)學院嵌入式系統(tǒng)工程專業(yè) 畢業(yè)設計(論文) 26 while(1) { /* 接收一個新的連接 */ newconn = conn_accept(conn)。 /* 對該連接進行處理 . */ process_connection(newconn)。 /* 刪除此連接 */ conn_delete(newconn)。 } return 0。 } 當服務器收到 HTTP 請求后,檢查 文件是否存在,如果不存在則返回錯誤信息。如果能找到這個文件,則將它 HTTP 應答報文的實體部分返回給客戶端瀏覽器??蛻舳藶g覽器從響應報文中提取 Web 頁面數(shù)據(jù)并顯示,顯示結(jié)果為如圖 所示。 圖 瀏覽器訪問嵌入式 Web 服務器的頁面 無錫科技職業(yè)學院嵌入式系統(tǒng)工程專業(yè) 畢業(yè)設計(論文) 27 謝辭 兩年多來,在校領(lǐng)導和老師的引導下,我努力學好專業(yè)知識,訓練專業(yè)技能,專業(yè)水平每一年都有明顯提高,調(diào)整知識結(jié)構(gòu)的同時,擴充了視野,我掌握了計算機的操作,熟悉互聯(lián)網(wǎng)運用。三年的大 專生活教我學會了冷靜、堅忍不拔,使我能在人生的坐標上找尋適合自己的位置并不斷修整自我,更讓我深刻認識到人要用心地去做每一件事,認真、踏實地面對人生的每一步。在人生的道路上不斷進取! 在畢業(yè)論文的完成過程中,我首先要感謝我的指導 老師的耐心指導! 他嚴謹細致、一絲不茍的作風一直是我工作、學習中的榜樣 ,沒有他的幫助和提供資料對于我來說要想在短短的幾個月的時間里學習到 這些 知識并完成畢業(yè)論文是幾乎不可能的事情 。 在論文即將完成之際,我的心情無法平靜,從開始進入課題到論文的順利完成,有多少 老師、 同學、朋友給了我無言的幫助 ,在這里請接受我誠摯的謝意! 無錫科技職業(yè)學院嵌入式系統(tǒng)工程專業(yè) 畢業(yè)設計(論文) 28 參考文獻 [1] 劉文濤 胡家寶 單片機與嵌入式系統(tǒng)應用 [2] 龍依然 ATMEGA128 的功能特點 [3] 陳建華 楊玲 基于 PXA270 嵌入式 Web 服務器的設計與實現(xiàn) [4] 無憂電子開發(fā)網(wǎng) 基于單片機的嵌入式 WEB 服務器的研究 [5]李艷紅 ,李國 .嵌入式 Inter 的實現(xiàn)方法淺析與應用 [J].計算 機工程 ,2021,7:184185 [6]韓光潔 ,趙海 .Embedded Inter 環(huán)境下 體系結(jié)構(gòu)的研 究與實現(xiàn) [J].通信學報 , 2021,9(25):6365 [7]韓光潔 ,趙海 .Embedded Inter 技術(shù)及其綜述 [J].小型微型計 算機系統(tǒng) ,2021,25(5):798801 [8] SED1335 控制器圖形液晶顯示模塊使用手冊 [M].北京 :北京精電 蓬遠 公司 ,2021,3:56
點擊復制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1