亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        消防水泵Web服務(wù)器的構(gòu)建與實(shí)現(xiàn)

        2019-01-02 09:01:18翟娟,潘往麗,羅輝輝,郭楷
        軟件 2019年12期

        翟娟,潘往麗,羅輝輝,郭楷

        摘 ?要: 本文構(gòu)建了消防水泵遠(yuǎn)程監(jiān)測(cè)系統(tǒng)的WEB服務(wù)器,闡述了Web服務(wù)器的工作原理及流程,CGI交互程序的設(shè)計(jì)以及HTML表單的設(shè)計(jì),主要對(duì)消防水泵運(yùn)行數(shù)據(jù)的實(shí)時(shí)顯示,歷史查詢(xún)與遠(yuǎn)程手動(dòng)控制等功能,并將CGI交互程序與數(shù)據(jù)庫(kù)進(jìn)行連接,實(shí)現(xiàn)了動(dòng)態(tài)監(jiān)控。

        關(guān)鍵詞: Web服務(wù)器;CGI;HTML表單

        中圖分類(lèi)號(hào): TP311 ? ?文獻(xiàn)標(biāo)識(shí)碼: A ? ?DOI:10.3969/j.issn.1003-6970.2019.12.024

        本文著錄格式:翟娟,潘往麗,羅輝輝,等. 消防水泵Web服務(wù)器的構(gòu)建與實(shí)現(xiàn)[J]. 軟件,2019,40(12):106109

        Construction and Implementation of Fire Pump Web Server

        ZHAI Juan, PAN Wang-li, LUO Hui-hui, GUO Kai

        (Guangling college, Yangzhou University, Yangzhou, Jiangsu 225000, China)

        【Abstract】: This paper constructs the Web server of the fire pump remote monitoring system, expounds the working principle and process of the Web server, the design of CGI interactive program and HTML form. The main functions of the system are real-time display of operation data of fire pump, historical inquiry and remote manual control. Finally, the CGI interactive program is connected with the database to realize dynamic monitoring.

        【Key words】: Webserver; CGI; HTML

        0 ?引言

        近年來(lái),我國(guó)火災(zāi)發(fā)生的新聞逐漸增多,導(dǎo)致國(guó)家財(cái)產(chǎn)損失嚴(yán)重,人員傷害也逐年加大。把各個(gè)城市建筑內(nèi)的消防系統(tǒng)(特別是消防水泵)的巡檢檢測(cè)工作做好,提高我國(guó)各種建筑物抗御火災(zāi)的能力,是當(dāng)前消防領(lǐng)域最重要的任務(wù),也是一個(gè)新的挑戰(zhàn),因此本文研究了消防水泵遠(yuǎn)程監(jiān)控系統(tǒng)。

        1 ?嵌入式Web服務(wù)器程序流程

        本文的采用的是B/S(Browser/Server)結(jié)構(gòu)的服務(wù)器,這種服務(wù)器簡(jiǎn)單來(lái)說(shuō)就是瀏覽器和服務(wù)器架構(gòu),可以達(dá)到監(jiān)控消防水泵的運(yùn)行狀況的目的。B/S服務(wù)器的工作流程如圖1,先初始化,創(chuàng)立和綁定套接字,建立TCP監(jiān)聽(tīng)80端口(默認(rèn)端口),用戶(hù)從瀏覽器向服務(wù)器傳輸HTTP請(qǐng)求,并羅列相應(yīng)

        圖1 ?嵌入式Web程序流程圖

        Fig.1 ?Web program process

        的服務(wù)事件,等待接收各種反饋信息(某個(gè)靜態(tài)頁(yè)面或CGI應(yīng)用程序),接收到反饋信息后退出服務(wù),一個(gè)循環(huán)結(jié)束。

        2 ?CGI交互程序設(shè)計(jì)

        實(shí)現(xiàn)動(dòng)態(tài)頁(yè)面的技術(shù)有多種,如:JSP,PHP,CGI,ASP等,不過(guò)本系統(tǒng)是在嵌入式Linux環(huán)境下進(jìn)行工作,由于CGI自身的一些特有的優(yōu)點(diǎn),并且絕大多數(shù)服務(wù)器都對(duì)它支持,使得它在開(kāi)發(fā)嵌入式Web服務(wù)器應(yīng)用程序時(shí)成為大家的首選方法,因此本系統(tǒng)也選用CGI技術(shù)。

        CGI,也叫CGI腳本,是HTTP服務(wù)器連接其他程序的樞紐。大部分的CGI程序的功能是處理表單的信息或者查詢(xún)數(shù)據(jù)庫(kù)等等,然后把處理的結(jié)果反饋給瀏覽器,這樣就使得網(wǎng)頁(yè)有了交互的本領(lǐng)。CGI可以通過(guò)多種語(yǔ)言編寫(xiě),如Perl、Pascal、C、Shell腳本語(yǔ)言等。本系統(tǒng)選擇了C語(yǔ)言編寫(xiě),主要是因?yàn)長(zhǎng)inux系統(tǒng)自帶C編譯器,而本系統(tǒng)所用的環(huán)境正是Linux系統(tǒng);硬件方面的通信必須使用C語(yǔ)言;C語(yǔ)言有編譯速度快、安全性高等特點(diǎn)。

        2.1 ?CGI工作原理

        CGI公共網(wǎng)關(guān)接口,在本系統(tǒng)里是負(fù)責(zé)連接消防水泵和Web服務(wù)器的很重要的橋梁,由CGI標(biāo)準(zhǔn)編寫(xiě)的外部擴(kuò)展程序總要用來(lái)處理用戶(hù)瀏覽器輸入的請(qǐng)求數(shù)據(jù),這樣就為用戶(hù)瀏覽器和Web服務(wù)器之間的數(shù)據(jù)更新提供了動(dòng)態(tài)交互手段。假如沒(méi)有CGI技術(shù),Web服務(wù)器只會(huì)呈現(xiàn)一些靜態(tài)的網(wǎng)頁(yè)和圖片,但是有了CGI技術(shù),Web服務(wù)器可以調(diào)用外部已有的應(yīng)用程序(電流,電壓,流量等外部應(yīng)用程序),并將外部程序的數(shù)據(jù)和Web網(wǎng)頁(yè)的靜態(tài)文本和圖片等進(jìn)行組合編程,發(fā)送給用戶(hù)端瀏覽器。CGI的工作原理圖如圖2所示。

        圖2 ?CGI工作原理

        Fig.2 ?CGI working principle

        CGI程序與Web服務(wù)器工作過(guò)程:

        (1)用戶(hù)瀏覽器向WEB服務(wù)器發(fā)送HTTP請(qǐng)求

        WEB服務(wù)器發(fā)送統(tǒng)一資源定位符URL,(可能是針對(duì)服務(wù)器端的某個(gè)或多個(gè)靜態(tài)頁(yè)面,也有可能是 CGI 外部資源程序),HTTP請(qǐng)求應(yīng)含有客戶(hù)端傳輸給服務(wù)器的信息內(nèi)容。

        (2)WEB服務(wù)器端處理用戶(hù)瀏覽器端的請(qǐng)求

        服務(wù)器接收到瀏覽器端發(fā)出的HTTP請(qǐng)求后,就會(huì)對(duì)收到的消息解讀分析,比如讀取請(qǐng)求的資源定位符URL、映射到對(duì)應(yīng)的物理文件等。對(duì)于服務(wù)器端來(lái)說(shuō),它需要分辨出客戶(hù)端發(fā)出的請(qǐng)求的是靜態(tài)頁(yè)面(“.html”“.htm”)還是CGI外部程序(“.cgi”)。如果發(fā)出的請(qǐng)求是CGI外部應(yīng)用程序時(shí),這時(shí)候服務(wù)器會(huì)創(chuàng)建對(duì)應(yīng)的CGI程序進(jìn)程。并按規(guī)范將所需的信息請(qǐng)求傳送給CGI程序進(jìn)程,后面的事件就由CGI應(yīng)用進(jìn)程來(lái)管理。

        (3)CGI程序處理客戶(hù)端請(qǐng)求

        CGI 外部程序根據(jù)CGI規(guī)范讀取服務(wù)器發(fā)送來(lái)的各種信息,并對(duì)處理客戶(hù)端的請(qǐng)求,例如,消費(fèi)水泵運(yùn)行時(shí)發(fā)送的數(shù)據(jù)或者調(diào)取數(shù)據(jù)庫(kù)的信息,最后將執(zhí)行的結(jié)果按照CGI規(guī)范反饋給Web服務(wù)器。

        (4)WEB服務(wù)器將CGI外部程序的處理結(jié)果反饋給客戶(hù)端

        CGI外部應(yīng)用程序處理的結(jié)果反饋給客戶(hù)端后,Web服務(wù)器解析CGI外部應(yīng)用程序的處理的結(jié)果,然后將生成 HTTP 的響應(yīng)消息反饋給用戶(hù)。

        從圖2可知,客戶(hù)端提交信息是通過(guò)HTML的表單完成的,表單為用戶(hù)提供交互的平臺(tái),當(dāng)用戶(hù)鍵入信息時(shí),這些信息則會(huì)組成表單的數(shù)據(jù)集,數(shù)據(jù)集作為HTTP請(qǐng)求消息的一部分傳輸給Web服務(wù)器。提交表單的方法通常有兩種:GET和POST,不同的請(qǐng)求方式,所用的環(huán)境變量也不同,本文不作詳細(xì)說(shuō)明。

        2.2 ?數(shù)據(jù)參數(shù)HTML表單設(shè)計(jì)

        HTML能標(biāo)記很多種類(lèi)的應(yīng)用組件:文本文檔、郵件、超媒體、數(shù)據(jù)庫(kù)搜索結(jié)果、菜單選項(xiàng)等,一般來(lái)說(shuō)HTML文檔包括標(biāo)題、列表、段落和表格,其中文檔中會(huì)有一些基本的標(biāo)記符,這些標(biāo)記符一般都成對(duì)的出現(xiàn),例如、和,另外還有其他標(biāo)記符,如 、

        、

        表單等。

        一般客戶(hù)端通過(guò)發(fā)送HTTP請(qǐng)求調(diào)取靜態(tài)網(wǎng)頁(yè),而本系統(tǒng)需要遠(yuǎn)程查看消防水泵的運(yùn)行數(shù)據(jù)或歷史數(shù)據(jù)等,即用戶(hù)需要從瀏覽器向服務(wù)器提交任務(wù)請(qǐng)求(查看消防水泵運(yùn)行數(shù)據(jù)),服務(wù)器解析后并反饋給客戶(hù)端達(dá)到交互目的,這時(shí)要用到HTML表單。表單是HTML的一個(gè)重要組成部分,一般和腳本、動(dòng)態(tài)頁(yè)面、數(shù)據(jù)處理等聯(lián)系在一起,用戶(hù)通過(guò)客戶(hù)端提交數(shù)據(jù)就要用到表單的功能(采集和提交客戶(hù)端輸入的信息)。表單包括輸入文本框,多選框,單選框,按鈕等,

        是用來(lái)標(biāo)記表單的表單標(biāo)記符,表單里的所有內(nèi)容都應(yīng)該在這兩個(gè)之間,
        有兩個(gè)重要特性:一個(gè)是action,表單數(shù)據(jù)提交后,它來(lái)注明需要執(zhí)行的CGI應(yīng)用程序的地址,如果用戶(hù)提交了表單,服務(wù)器就按照它提供的CGI程序地址來(lái)處理表單。第二個(gè)是method,它用來(lái)規(guī)定表單里的數(shù)據(jù)是GET還是POST發(fā)送方式。

        本系統(tǒng)總共設(shè)計(jì)了6個(gè)頁(yè)面,分別是主頁(yè)面,登錄頁(yè)面,注冊(cè)頁(yè)面,歷史數(shù)據(jù)查詢(xún)頁(yè)面,在線(xiàn)監(jiān)控頁(yè)面,手動(dòng)控制頁(yè)面。

        以登錄頁(yè)面為例,采用POST方法進(jìn)行數(shù)據(jù)發(fā)送,圖3為登錄界面截圖,其他的 HTML 表單設(shè)計(jì)與此相同。登錄頁(yè)面的主要代碼為:

        消防水泵遠(yuǎn)程監(jiān)控系統(tǒng)

        用戶(hù)名:

        密碼:< input type=text name= "password ">

        < input type = "submit " value= "登錄" >

        < input type = "submit " value= "注冊(cè)">

        圖3 ?登錄界面

        Fig.3 ?login webpage

        2.3 ?CGI程序編寫(xiě)

        本文CGI程序包括登錄login.cgi、在線(xiàn)監(jiān)控頁(yè)面monitor.cgi、歷史數(shù)據(jù)查詢(xún)頁(yè)面history.cgi、手動(dòng)控制頁(yè)面control.cgi。

        (1)登錄界面程序login.cgi

        登錄的響應(yīng)程序?yàn)閣ww/cgi-bin/login.cgi,在登錄界面上輸入用戶(hù)名和密碼后,CGI首先分析HTML表單提交的信息,然后進(jìn)行匹配和判斷用戶(hù)名和密碼是否一致,判斷結(jié)束后再返回頁(yè)面結(jié)果,主要代碼如下:

        char name, password,p;

        if(getenv("CONTENT_LENGTH "))

        n=atoi(getenv("CONTENT_length "))

        ......

        Printf("Content-type: text/html\n\n ");

        if((strcmp(name, "admin ")!=0|| (strcmp( password, "123456 ")!=0))

        {

        printf("\n ");

        printf("\n ");

        printf("

        用戶(hù)名或密碼不正確,請(qǐng)重試");

        printf("\n");

        printf("\n");

        fflush(stdout);

        }

        else

        {

        Printf("%s",p1);

        fflush();

        }

        fflush(stdout);

        (2)數(shù)據(jù)查詢(xún)程序設(shè)計(jì)history.cgi

        數(shù)據(jù)查詢(xún)程序首先要打開(kāi)數(shù)據(jù)庫(kù)test.db,讀取數(shù)據(jù)庫(kù)data中保存的水泵歷史運(yùn)行數(shù)據(jù),并將歷史數(shù)據(jù)保存到某個(gè)變量中,最后用fprintf命令向客戶(hù)端發(fā)送讀取到的歷史數(shù)據(jù),其主要代碼如下:

        亚洲精品中文字幕乱码3| 久久99国产乱子伦精品免费| 日韩精品真人荷官无码| 少女高清影视在线观看动漫| 免费现黄频在线观看国产| 亚洲国产美女精品久久| 日本中文字幕av网址| 一本色道久久综合亚洲| 色噜噜狠狠综曰曰曰| 中国丰满熟妇av| 国产精品深夜福利免费观看| av在线播放一区二区免费| 精品人妻一区二区三区在线观看| 国产免费拔擦拔擦8x高清在线人| 免费国产交换配乱淫| 放荡人妻一区二区三区| 在线观看麻豆精品视频| 久久综合九色综合97欧美| 日本免费人成视频播放| 日韩国产自拍成人在线| 日韩人妻另类中文字幕| 精品久久人妻av中文字幕| 毛片免费全部无码播放| 国产精品日韩中文字幕| 国产精品国产三级野外国产| 成人无码α片在线观看不卡| 国产精品短视频| 五码人妻少妇久久五码| 青青草视频在线观看网| 99热这里有精品| 亚洲首页一区任你躁xxxxx| 亚洲人妻中文字幕在线视频| 日本免费在线一区二区三区| 免费少妇a级毛片人成网| 亚洲妓女综合网99| 青青草视频原手机在线观看| av高潮一区二区三区| 久久国产色av免费观看| 日本VA欧美VA精品发布| 日本黄色高清视频久久| 亚洲中文字幕无码爆乳app|