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