資源描述:
《戴向軍嵌入式webnew》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、物理與電子工程學(xué)院設(shè)計(jì)實(shí)驗(yàn)報(bào)告物理與電子工程學(xué)院《嵌入式系統(tǒng)設(shè)計(jì)》設(shè)計(jì)性實(shí)驗(yàn)報(bào)告題目嵌入式WEB服務(wù)器實(shí)驗(yàn)系別物電學(xué)院年級(jí)08專業(yè)電子信息工程班級(jí)1學(xué)號(hào)Y10108116學(xué)生姓名戴向軍指導(dǎo)教師浦煒實(shí)驗(yàn)時(shí)間2011-9-289物理與電子工程學(xué)院設(shè)計(jì)實(shí)驗(yàn)報(bào)告目錄課題要求21.本課題的目的22.運(yùn)行環(huán)境2正文2一.課題分析2二.系統(tǒng)設(shè)計(jì)31.Boa的功能實(shí)現(xiàn)32.Boa在ARM上的移植52.1修改Web服務(wù)器Boa52.2交叉編譯Boa62.3配置Web服務(wù)器Boa62.4測(cè)試Boa的運(yùn)行7三.技術(shù)實(shí)現(xiàn)問(wèn)題8四.總結(jié)與體會(huì)9設(shè)計(jì)性
2、實(shí)驗(yàn)報(bào)告成績(jī):指導(dǎo)教師簽名:99物理與電子工程學(xué)院設(shè)計(jì)實(shí)驗(yàn)報(bào)告課題要求1.本課題的目的在2440開(kāi)發(fā)板上移植一個(gè)boa程序,使開(kāi)發(fā)板可作為一個(gè)web服務(wù)器使用,在PC計(jì)算機(jī)上使用瀏覽器測(cè)試嵌入式web服務(wù)器的功能。2.運(yùn)行環(huán)境Linux系統(tǒng)正文一.課題分析隨著Internet技術(shù)的興起,在嵌入式設(shè)備的管理與交互中,基于Web方式的應(yīng)用成為目前的主流,這種程序結(jié)構(gòu)也就是大家非常熟悉的B/S結(jié)構(gòu),即在嵌入式設(shè)備上運(yùn)行一個(gè)支持腳本或CGI功能的Web服務(wù)器,能夠生成動(dòng)態(tài)頁(yè)面,在用戶端只需要通過(guò)Web瀏覽器就可以對(duì)嵌入式設(shè)備進(jìn)行管理
3、和監(jiān)控,非常方便實(shí)用。典型的嵌入式Web服務(wù)器有Boa和thttpd等,它們和Apache等高性能的Web服務(wù)器主要的區(qū)別在于它們一般是單進(jìn)程服務(wù)器,只有在完成一個(gè)用戶請(qǐng)求后才能響應(yīng)另一個(gè)用戶的請(qǐng)求,而無(wú)法并發(fā)響應(yīng),但這在嵌入式設(shè)備的應(yīng)用場(chǎng)合里已經(jīng)足夠了。廣義講,凡是帶有微處理器的專用軟硬件系統(tǒng)都可以稱為嵌入式系統(tǒng)。所謂嵌入式設(shè)備,是指具有計(jì)算機(jī)功能,但又不稱為計(jì)算機(jī)器材,幾乎包括了我們周圍的所有電器設(shè)備:PDA、手機(jī)、機(jī)頂盒、汽車、微波爐、電梯、安全系統(tǒng)、自動(dòng)售貨機(jī)、醫(yī)療儀器、自動(dòng)取款機(jī)等。嵌入式系統(tǒng)可以通過(guò)各種無(wú)線形式(
4、如WAP、BlueTooth等)和有線形式(TCP/IP、PPP等)的網(wǎng)絡(luò)連接方式實(shí)現(xiàn)它們之間的相互連接,因此,在網(wǎng)絡(luò)通信市場(chǎng)上極具生命力?,F(xiàn)在人們對(duì)Internet應(yīng)用的依賴程度日漸增加,也促進(jìn)了嵌入式技術(shù)的增長(zhǎng)。信息家電的發(fā)展也為嵌入式Internet9物理與電子工程學(xué)院設(shè)計(jì)實(shí)驗(yàn)報(bào)告技術(shù)提供了空間,如面向Internet的信息冰箱。這種信息家電的特點(diǎn)就是價(jià)格低廉、軟件功能強(qiáng)大、全面支持Internet訪問(wèn)、軟件可通過(guò)網(wǎng)絡(luò)升級(jí)、有效保護(hù)用戶投資。二.系統(tǒng)設(shè)計(jì)1.Boa的功能實(shí)現(xiàn)嵌入式Web服務(wù)器Boa和普通Web服務(wù)器一樣
5、,能夠完成接收客戶端請(qǐng)求、分析請(qǐng)求、響應(yīng)請(qǐng)求、向客戶端返回請(qǐng)求結(jié)果等任務(wù).它的工作過(guò)程主要包括:(a)完成Web服務(wù)器的初始化工作,如創(chuàng)建環(huán)境變量、創(chuàng)建TCP套接字、綁定端口、開(kāi)始偵聽(tīng)、進(jìn)入循環(huán)結(jié)構(gòu),以及等待接收客戶瀏覽器的連接請(qǐng)求:(b)當(dāng)有客戶端連接請(qǐng)求時(shí),Web服務(wù)器負(fù)責(zé)接收客戶端請(qǐng)求,并保存相關(guān)請(qǐng)求信息;(c)在接收到客戶端的連接請(qǐng)求之后.分析客戶端請(qǐng)求,解析出請(qǐng)求的方法、URL目標(biāo)、可選的查詢信息及表單信息.同時(shí)根據(jù)請(qǐng)求做出相應(yīng)的處理;(d)Web服務(wù)器完成相應(yīng)處理后,向客戶端瀏覽器發(fā)送響應(yīng)信息,關(guān)閉與客戶機(jī)的TC
6、P連接。嵌入式Web服務(wù)器Boa根據(jù)請(qǐng)求方法的不同,做出不同的響應(yīng).如果請(qǐng)求方法為HEAD,則直接向?yàn)g覽器返回響應(yīng)首部;如果請(qǐng)求方法為GET,則在返回響應(yīng)首部的同時(shí),將客戶端請(qǐng)求的URL目標(biāo)文件從服務(wù)器上讀出,并且發(fā)送給客戶端瀏覽器;如果請(qǐng)求方法為POST,則將客戶發(fā)送過(guò)來(lái)的表單信息傳送給相應(yīng)的CGI程序,作為CGI的參數(shù)來(lái)執(zhí)行CGI程序,并將執(zhí)行結(jié)果發(fā)送給客戶端瀏覽器.Boa的功能實(shí)現(xiàn)也是通過(guò)建立連接、綁定端口、進(jìn)行偵聽(tīng)、請(qǐng)求處理等來(lái)實(shí)現(xiàn)的.其初始化部分的源代碼如下:9物理與電子工程學(xué)院設(shè)計(jì)實(shí)驗(yàn)報(bào)告intserver_s;
7、server—S=socket(SERVER—PF,SOCK—STREAM,IPPROTO—TCP);if(server—S==一1){DIE(”unabletocreatesocket”);}if(set—nonblock—fd(server—S)==一1){DIE(”unabletosetserversockettononblocking}if(fcntl(server—S,F(xiàn)—SETFD,1)==一1){DIE(”cantsetclose—on—execonserversocket!”);}if((setsockopt
8、(server—S,SOL—SOCKET,SO—REUSEADDR,(void)&sock—opsizeof(sock—opt)))==-1){DIE(”setsockopt”);}if(bind—server(server—S,server—ip,server_port)==-1){DI