北京電子科技學院(BESTI)linux
實 驗 報 告編程
課程:信息安全系統設計基礎 班級: 201352 瀏覽器
姓名:池彬寧 賀邦安全
學號:20135212 20135208服務器
成績: 指導教師: 婁嘉鵬 實驗日期:2015.12.1網絡
實驗密級: 預習程度: 實驗時間:15:30~18:20函數
儀器組次: 必修/選修: 必修 實驗序號:4學習
實驗名稱:簡單嵌入式WEB服務器實驗 ui
實驗目的與要求:1.掌握在 ARM 開發板實現一個簡單 WEB 服務器的過程。 spa
2.學習在 ARM 開發板上的 SOCKET 網絡編程。
3.學習 Linux 下的 signal()函數的使用
實驗儀器:
名稱 |
型號 |
數量 |
ARM開發板 |
UP-NETARM2410-CL |
1 |
PC |
Windows Xp |
1 |
1、實驗內容:
①代碼理解:
1)解析客戶請求:int ParseReq(FILE *f, char *r)
char *r :字符串指針,待解析的字符串。
2)發送 HTTP協議數據頭:int PrintHeader(FILE *f, int content_type)
int content_type:信息類型,用於肯定發送的 HTTP 協議數據頭信息
3)發送當前目錄文件列表信息:int DoDir(FILE *f, char *name)
char *name:目錄名,表示客戶請求的目錄信息。
4)發送 HTML文件內容:int DoHTML(FILE *f, char *name)
char *name:客戶請求的文件名
5)發送純文本(TXT)文件內容:int DoText(FILE *f, char *name)
char *name:客戶請求的文件名
6)發送 JPEG圖像文件內容:int DoJpeg(FILE *f, char *name)
char *name:客戶請求的文件名
7)發送 GIF圖像文件內容:int DoGif(FILE *f, char *name)
char *name:客戶請求的文件名
②按照實驗一配置好NFS服務。
③進入red hat系統中,進入07_httpd目錄,使用make產生可執行文件httpd。
④在超級終端上輸入mount –t nfs –o nolock 192.168.0.23:/arm2410cl /host(注意在/host前存在空格),建立連接。
⑤輸入cd /host/exp/basic/07_htttpd/ 進入07_httpd目錄
⑥輸入./httpd,運行httpd可執行文件,出現如下提示語句:
starting httpd...
press q to quit.
wait for connection
⑦打開本機瀏覽器輸入http://192.168.0.121,出現如下頁面
2、實驗原理理解
1.該WEB服務器能實現的功能?
獲取服務器當前目錄文件列表、獲取指定文件、獲取HTML類型文件、獲取純文本文件、獲取JPG圖像文件、獲取GIF圖像文件。
2.HTTP協議數據頭格式要求
1)請求格式:
請求行-通用信息頭-請求頭-實體頭-報文主體
2)響應格式:
狀態行-通用信息頭-響應頭-實體頭-報文主體
3.爲什麼採用SOCKET?
SOCKET用於描述IP地址和端口,是一個通訊鏈的句柄,能夠用來實現不一樣虛擬機或不一樣計算機之間的通訊。
3、實驗過程當中遇到的問題以及解決方案
1.make出錯
發現僅僅爲最後一個生成httpd可執行文件語句出錯,則補上armv4l-unknown-linux-gcc -o httpd httpd.o copy.o –lpthread便可。
4、實驗體會:
因爲已是最後一個實驗了,大部分的步驟都進行的很順利,對於出現的實驗結果也是感到很驚喜,但後來一想,這種反映是由於本身並未弄清楚代碼的含義,本身照着指導書一步一步地來的結果,在對代碼有了解後,發現本身當初的驚喜多麼可笑的反應。經過這幾回實驗也培養了良好的協做能力,體會到了1+1>2的感受。