微波設(shè)備網(wǎng)管系統(tǒng)中Web設(shè)計(jì)與實(shí)現(xiàn)
3.2 嵌入式Web的Socket通信
基于B/S模式的遠(yuǎn)程監(jiān)控系統(tǒng)中,用戶需要通過瀏覽器管理遠(yuǎn)程設(shè)備。對于微波設(shè)備遠(yuǎn)程監(jiān)控中的Socket通信有2種信息:一種是查看微波設(shè)備的實(shí)時(shí)運(yùn)行 狀態(tài)信息,要求快速和高效,因此采用無連接的UDP Socket通信;另一種是微波設(shè)備參數(shù)信息,要求高可靠性和安全性,因此采用面向連接的TCP Socket通信。客戶端可根據(jù)微波設(shè)備的IP地址建立TCP連接,由控制設(shè)備監(jiān)聽這個(gè)連接請求,若連接成功,則接收客戶端發(fā)送的設(shè)備參數(shù)設(shè)定值。編寫 TCP通信任務(wù)時(shí)分為服務(wù)器和客戶機(jī)2種方式。前者需要監(jiān)聽連接,只有在與客戶機(jī)建立連接后才能進(jìn)行數(shù)據(jù)處理。后者是主動(dòng)連接服務(wù)器,也是在連接成功后才 能進(jìn)行數(shù)據(jù)處理。圖3為TCP通信時(shí)服務(wù)器端和客戶機(jī)端通信的函數(shù)應(yīng)用過程。本文引用地址:http://www.ex-cimer.com/article/202497.htm
服務(wù)器端主函數(shù)的工作過程:初始化μC/OS-Ⅱ,創(chuàng)建TCP/IP初始化任務(wù),硬件資源的初始化(設(shè)置網(wǎng)絡(luò)端口號,RTL8019AS網(wǎng)絡(luò)芯片的初始化,初始化ARP、TCP、UDP),啟動(dòng)μC/OS-Ⅱ系統(tǒng),創(chuàng)建服務(wù)器任務(wù),進(jìn)入服務(wù)器。
3.3 處理HTTP協(xié)議頭
HTTP協(xié)議頭包括一個(gè)起始行、零個(gè)或多個(gè)消息頭域、一個(gè)標(biāo)示頭域結(jié)束的實(shí)體行和一個(gè)可能存在的消息體。本程序主要解析協(xié)議頭的起始行,這種處理思路也符 合嵌入式系統(tǒng)硬件對軟件實(shí)現(xiàn)的復(fù)雜度要求。請求方式?jīng)Q定了對請求URL所指定的資源進(jìn)行操作的方式,GET方法讀取URL指定的資源,一般用來向服務(wù)器傳 輸少量且透明的數(shù)據(jù),數(shù)據(jù)總量被限制在255個(gè)字符以內(nèi),而POST方法可傳輸大量數(shù)據(jù),與HTML的表單特性相配合以實(shí)現(xiàn)遠(yuǎn)程動(dòng)態(tài)交互控制。當(dāng)建立連接 開始時(shí),客戶端發(fā)送GET請求方法給服務(wù)器端,以訪問服務(wù)器端的網(wǎng)頁。POST作為請求方法時(shí),首先和Web服務(wù)器建立連接,成功后瀏覽器將HTML表單 中的值發(fā)送給Web服務(wù)器,服務(wù)器端的程序通過判斷用戶的信息來確定是否讓其進(jìn)入系統(tǒng)主頁面。在每次連接成功后,服務(wù)器端程序會返回以狀態(tài)碼200開頭的 響應(yīng)消息,消息的起始行為:HTTP/1.1 200 OK。當(dāng)用戶請求一個(gè)服務(wù)器端不存在的文件時(shí),服務(wù)器返回以狀態(tài)碼404開頭的響應(yīng)消息。
HTTP的請求報(bào)文(實(shí)測):
1)一般的POST請求報(bào)文
評論