資源描述:
《基于linux系統(tǒng)的嵌入式web服務器的設計-2》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。
1、嵌入式系統(tǒng)開發(fā)課程設計*******************實踐教學*******************蘭州理工大學計算機與通信學院2015年春季學期嵌入式系統(tǒng)開發(fā)課程設計題目:基于LINUX系統(tǒng)的嵌入式WEB服務器的設計專業(yè)班級:通信工程12級1班姓名:王愛強學號:12250110指導教師:張璽君成績:嵌入式系統(tǒng)開發(fā)課程設計目錄摘要1前言2一、基本原理31.1嵌入式WEB服務器概述31.2SOCKET編程概述4二、系統(tǒng)分析62.1整體結構圖62.2連接處理模塊6三、詳細設計73.1主程序設計73.2客戶連接處理模塊設計83.3
2、客戶請求解析處理模塊設計83.4發(fā)送HTTP協(xié)議數(shù)據(jù)頭模塊設計9四、運行結果11參考文獻14總結15致謝16附錄17嵌入式系統(tǒng)開發(fā)課程設計摘要嵌入式Web服務器主要用于遠程監(jiān)測和控制,它不同于傳統(tǒng)的Web服務器,硬件處理器能力和儲存能力有限,因此操作系統(tǒng)等相關軟件需要進行裁剪以適應嵌入式環(huán)境,開源代碼的操作系統(tǒng)Linu型具有強大的網(wǎng)絡服務功能,支持多種網(wǎng)絡接口和網(wǎng)絡協(xié)議棧,同時具有成本低性能穩(wěn)定,擴充能力強等特點,成為嵌入式操作系統(tǒng)的首選。關鍵詞:Linux;Web服務器;瀏覽器;交叉編譯25嵌入式系統(tǒng)開發(fā)課程設計前言嵌入式系統(tǒng)已
3、經成熟并且得到了廣泛地使用。在傳統(tǒng)的測控系統(tǒng)中,為了實現(xiàn)多個測控點之間的信息交流,一般采用RS-485、CAN、SPI等總線將多個測控節(jié)點組織成一個網(wǎng)絡,但是這樣的網(wǎng)絡專用性太強,有效地通信范圍太窄,而基于TCP/IP協(xié)議的Web技術得到了普及,更重要的是這些協(xié)議是可開發(fā)的、標準的、獨立于平臺的。把嵌入式系統(tǒng)和與Web技術結合在一起,將Web技術引入到測量和控制系統(tǒng)中,實現(xiàn)基于嵌入式Web服務器的遠程控制系統(tǒng),必將有良好地應用前景。嵌入式系統(tǒng)離不開嵌入式操作系統(tǒng)。目前商用的操作系統(tǒng)往往價格昂貴,不適應廣泛應用。嵌入式Linux操作
4、系統(tǒng)源碼可開發(fā)。移植性好,支持多種硬件平臺并且支持幾乎所有的常見網(wǎng)絡通信協(xié)議支持的文件系統(tǒng)也很豐富,是一個功能完整的嵌入式操作系統(tǒng)并且有大量的優(yōu)秀開發(fā)碼源的應用軟件和開發(fā)工具可以使用。因此,采用Linux作為平臺,使用Web技術進行遠程在線測控系統(tǒng)的設計。25嵌入式系統(tǒng)開發(fā)課程設計一、基本原理1.1嵌入式WEB服務器概述1)WEB服務器通常是在遠程機器上,負責對瀏覽器頁面請求作出響應,返回HTML編碼或類似的數(shù)據(jù)流。通俗的講,Web服務器傳送(serves)頁面使瀏覽器可以瀏覽,然而應用程序服務器提供的是客戶端應用程序可以調用(c
5、all)的方法(methods)。確切一點,你可以說:Web服務器專門處理HTTP請求(request),但是應用程序服務器是通過很多協(xié)議來為應用程序提供(serves)商業(yè)邏輯(businesslogic)。隨著Internet技術的興起,在嵌入式設備的管理與交互中,基于Web方式的應用成為目前的主流,這種程序結構也就是大家非常熟悉的B/S結構,即在嵌入式設備上運行一個支持腳本或CGI功能的Web服務器,能夠生成動態(tài)頁面,在用戶端只需要通過Web瀏覽器就可以對嵌入式設備進行管理和監(jiān)控,非常方便實用。2)WEB瀏覽器WEB瀏覽器是
6、個顯示網(wǎng)頁伺服器或檔案系統(tǒng)內的HTML文件,并讓用戶與此些文件互動的一種軟件。個人電腦上常見的網(wǎng)頁瀏覽器包括微軟的InternetExplorer、Mozilla的Firefox、Opera和Safari。瀏覽器是最經常使用到的客戶端程序。3)嵌入式WEB服務器架構圖1嵌入式WEB服務器架構25嵌入式系統(tǒng)開發(fā)課程設計常見的嵌入式WEB服務器有l(wèi)ighttpd、shttpd、thttpd、boa、mathopd、minihttpd、appweb、goahead等上百種。1.2SOCKET編程概述現(xiàn)在大多數(shù)的操作系統(tǒng)都提供了已編譯好了
7、的網(wǎng)絡通訊程序。TCP/IP范圍內最普通的例子就是web客戶端(瀏覽器)和web服務器,還有就是FTP和Telnet的客戶端和服務器等。Socket接口是TCP/IP網(wǎng)絡的API,Socket接口定義了許多函數(shù)或例程,程序員可以用它們來開發(fā)TCP/IP網(wǎng)絡上的應用程序。SOCKET編程接口#includeintsocket(intdomain,inttype,intprotocol);說明:socket()函數(shù)創(chuàng)建一個套接字參數(shù):domain: 應用程序所在主機使用的通信協(xié)議族type: 建立的套接字
8、的類型Protocol:使用的特定協(xié)議#includeintbind(intsockfd,structsockaddr*my_addr,socklen_taddrlen);說明:將套接字地址與所創(chuàng)建的套接字號聯(lián)系起來參數(shù)