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

正文內(nèi)容

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

2025-06-02 01:24本頁(yè)面
  

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