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

        ?

        基于Sockets通信的臨床設(shè)備監(jiān)控的設(shè)計實現(xiàn)

        2020-12-14 04:37:08陳庭峰
        電腦知識與技術(shù) 2020年28期

        陳庭峰

        摘要:為了方便管理與維修臨床信息設(shè)備,該文設(shè)計出一套用于臨床信息設(shè)備監(jiān)控的軟件。通過運用C#編程技術(shù)和Sockets通信技術(shù),采用Client/Server的通訊模型,實現(xiàn)了監(jiān)控方法。通過實踐驗證,該臨床設(shè)備監(jiān)控軟件不僅適用而且方便、高效。

        關(guān)鍵詞:設(shè)備監(jiān)控;Sockets;Server;Client

        中圖分類號:TP311 ? ? ? ?文獻標識碼:A

        文章編號:1009-3044(2020)28-0056-02

        Abstract:in order to facilitate the management and maintenance of clinical information equipment, a set of software for clinical information equipment monitoring is designed. By using the C # programming technology and sockets communication technology, using the communication model of client/server, the monitoring method is realized. Through the practice verification, the clinical equipment monitoring software is not only applicable, but also convenient and efficient.

        Key words: equipment monitoring; Sockets;Server;Client

        近幾年,醫(yī)院基本實現(xiàn)病歷電子化的看病模式,就診、用藥記錄等信息都存檔于計算機。信息化發(fā)展帶來了諸多便利,但是問題是信息設(shè)備宕機,損壞等情況不可避免,為了能實時了解設(shè)備使用狀況,設(shè)計出能夠動態(tài)觀察臨床設(shè)備的運行狀況軟件就必不可少。本文主要介紹對于計算機和打印機的監(jiān)控。

        1 Socket技術(shù)特點

        所謂Socket通常也稱作“套接字”,實現(xiàn)服務(wù)器和客戶端之間的物理連接,并進行數(shù)據(jù)傳輸,主要有UDP和TCP兩個協(xié)議[1]。Socket處于網(wǎng)絡(luò)協(xié)議的傳輸層。

        UDP協(xié)議:廣播式數(shù)據(jù)傳輸,不進行數(shù)據(jù)驗證。

        TCP協(xié)議:傳輸控制協(xié)議,一種面向連接的協(xié)議,給用戶進程提供可靠的全雙工的字節(jié)流。優(yōu)點很多:(1)數(shù)據(jù)量小;(2)傳輸數(shù)據(jù)時間短、性能高;(3)適合于客戶端和服務(wù)器端之間信息實時交互;(4)可以加密且數(shù)據(jù)安全性強。

        2 Windows下Socket的設(shè)計模式

        臨床護理設(shè)備監(jiān)控主要采用Client/Server的通訊模型[2],設(shè)置服務(wù)器端和客戶端兩部分,數(shù)據(jù)結(jié)構(gòu)設(shè)置主機信息模塊和打印機信息模塊兩部分,通過Socket實現(xiàn)實時傳輸。

        服務(wù)器和客戶端的通訊的前提是唯一標志的進程,由于IP層的IP地址可以唯一標志主機,TCP層協(xié)議和端口可以唯一標志主機的一個進程,就可以利用IP地址加協(xié)議加端口號唯一標志網(wǎng)絡(luò)中的進程[3]。所以本軟件通過基于5588端口加IP地址和使用Socket通信協(xié)議來設(shè)計實現(xiàn)。

        3具體設(shè)計實現(xiàn)

        3.1服務(wù)器端設(shè)計

        服務(wù)器端的接收數(shù)據(jù)模式如下[4]:(1)服務(wù)器監(jiān)聽并讀取來自客戶端的Xml數(shù)據(jù)包;(2)接收數(shù)據(jù)(如接受不成功則斷開socket連接,繼續(xù)監(jiān)聽);(3)分析提取數(shù)據(jù),數(shù)據(jù)異常推送報警;(4)數(shù)據(jù)分別存入主機信息Xml數(shù)據(jù)庫和打印機信息Xml數(shù)據(jù)庫中。

        3.2服務(wù)器端實現(xiàn)

        第一步:創(chuàng)建一個用于監(jiān)聽連接的Socket對象;

        private Socket serverSocket;

        第二步:用指定的5588端口號和服務(wù)器的ip建立一個對象;

        private static String IP = “192.0.0.202”;

        private static int Port = 5588;

        第三步:用socket對象的Bind()方法綁定對象;

        serverSocket.Bind(new serverSocket(IPAddress.Parse(IP), Port));

        第四步:用Socket對象的Listen()方法開始監(jiān)聽;

        serverSocket.Listen(0);

        第五步:接收到客戶端的連接,用Socket對象的Accept()方法創(chuàng)建一個新的用于和客戶端進行通信的Socket對象;

        Socket NewClientSocket = serverSocket.Accept();

        第六步:接受來自客戶端的Xml數(shù)據(jù),存入并提取服務(wù)器端的ClientXml和PrintXml數(shù)據(jù)庫。提取數(shù)據(jù),以ClientXml數(shù)據(jù)庫為例代碼如下:

        FileStream fs = new FileStream("C:/ClientXml.xml", FileMode.Create, FileAccess.Write);

        fs.Write(msgByte, 0, msgByte.Length);

        fs.Close();

        ClientData data;

        XmlSerializer serializer = new XmlSerializer(typeof(ClientData));

        using (StreamReaderstreamReader = File.OpenText("C:/ClientXml.xml"))

        {

        data = serializer.Deserialize(streamReader) as ClientData;

        }

        ClientDate.ClientIP= data.ClientIP;

        ClientDate.ClientName= data.ClientName;

        ClientDate.CPUTempState = data.CPUTempState;

        第七步:通信結(jié)束關(guān)閉socket。

        3.3服務(wù)器端界面設(shè)計

        設(shè)計界面分為歷史數(shù)據(jù)圖、主機列表圖和報警界面三部分。

        3.3.1展示數(shù)據(jù)

        圖表分為歷史曲線圖表和主機列表圖兩大塊,對比之前的歷史數(shù)據(jù)實時刷新,動態(tài)展示數(shù)據(jù)信息。

        3.3.2報警機制

        提取異常數(shù)據(jù),推送至報警界面,當數(shù)據(jù)正常后取消報警。

        3.4客戶端設(shè)計

        客戶端數(shù)據(jù)模塊分為主機信息模塊和打印機信息模塊兩部分,利用多線程傳輸數(shù)據(jù)。

        具體設(shè)計流程:(1)監(jiān)測獲取主機和設(shè)備數(shù)據(jù);(2)封裝數(shù)據(jù)存入Xml數(shù)據(jù)庫;(3)實時發(fā)送Xml數(shù)據(jù)包給服務(wù)器。

        3.4.1主機信息模塊

        主機信息模塊數(shù)據(jù)包格式主要分為Time、客戶機標識、CPU狀態(tài)和內(nèi)存狀態(tài)四部分。Time表示時間,客戶機標識表示包括IP地址和主機名兩部分,CPU狀態(tài)包括CPU溫度和CPU使用率兩部分,內(nèi)存狀態(tài)包括內(nèi)存使用率和內(nèi)存進程數(shù)兩部分,具體數(shù)據(jù)結(jié)構(gòu)設(shè)計采用封裝類的方式,定義ClientDate類,設(shè)置Client對象,包含Time、ClientIP、ClientName、CPUState和MemoryState等字段,具體代碼如下:

        public class ClientDate

        {

        public string Time{ get; set; }

        public string ClientIP{ get; set; }

        public string ClientName{ get; set; }

        public string CPUTempState{ get; set; }

        public string MemoryState{ get; set; }

        public string CPUUsage{ get; set; }

        public string MemoryUsage{ get; set; }

        }

        CPU運行狀態(tài)標識:1表示溫度正常,0表示溫度異常;內(nèi)存運行狀態(tài)標識:1表示正常,0表示異常。

        3.4.2打印機信息模塊

        打印機信息模塊數(shù)據(jù)包格式主要分為Time、客戶機標識、打印機狀態(tài)三部分。Time表示時間,客戶機標識包括IP地址和主機名兩部分,打印機狀態(tài)包括卡紙、缺紙、正常和脫機四部分,具體數(shù)據(jù)結(jié)構(gòu)設(shè)計也是采用封裝類的方式,定義PrintDate類,設(shè)置Print對象,包括Time,ClientIP、ClientName和PrintState等字段,具體代碼如下:

        public class PrintDate

        {

        public string Time{ get; set; }

        public string ClientIP{ get; set; }

        public string ClientName{ get; set; }

        public string PrintState{ get; set; }

        }

        打印機狀態(tài)標識:0表示正常,1表示脫機,2表示卡紙,3表示缺紙[5]。

        3.5客戶端實現(xiàn)

        在發(fā)送數(shù)據(jù)給服務(wù)器之前,客戶端每10秒鐘更新獲取一次連接主機信息和打印機信息,分別更新存入ClientXml和PrintXml數(shù)據(jù)庫中并且發(fā)送數(shù)據(jù)至服務(wù)器。發(fā)送數(shù)據(jù)流程如下所示[6]:

        第一步:建立一個Socket對象;

        public Socket clientSocket;

        第二步:用指定的5588端口號和服務(wù)器的ip建立一個clientSocke對象;

        private static String IP = "192.0.0.202";private static int Port = 5588;

        第三步:用Socket對象的Connect()方法以上面建立的clientSocke對象作為參數(shù),向服務(wù)器發(fā)出連接請求;

        clientSocket.Connect(ip,port);

        第四步:如果連接成功,就用Socket對象的Send()方法向服務(wù)器發(fā)送Xml信息。以發(fā)送主機信息數(shù)據(jù)ClientXml為例,代碼如下:

        try

        {

        clientSocket.Send(FileTOByte(ClientXml));

        }

        catch

        {

        MessageBox.Show("發(fā)送數(shù)據(jù)失敗");

        }

        第六步:通信結(jié)束關(guān)閉Socket。

        4 結(jié)束語

        本文設(shè)計并且實現(xiàn)了臨床護理設(shè)備監(jiān)控系統(tǒng)。該軟件使用效果俱佳,受到了臨床工作人員的一致好評。由于該軟件是基于Sockets通信技術(shù)下實現(xiàn),所以無法監(jiān)控單機設(shè)備,就需要定期查看和維護單機設(shè)備。在今后的設(shè)計研究中,將重點解決一下問題:實現(xiàn)消息機制和廣播機制,滿足更多設(shè)備監(jiān)控需求。

        參考文獻:

        [1] 王廣偉,李維釗,曲銘海.Windows Sockets網(wǎng)絡(luò)編程[J].計算機應(yīng)用研究,2000,17(8):51-54.

        [2] 周廣全,楊學(xué)良,張姝,等.基于SOCKETS的EDI通信平臺的研究與實現(xiàn)[J].計算機研究與發(fā)展,1998,35(10):3-5.

        [3] 何進,謝松巍.基于Socket的TCP/IP網(wǎng)絡(luò)通訊模式研究[J].計算機應(yīng)用研究,2001,18(8):134-135.

        [4] 黃顯信.利用SOCKET通信進程實現(xiàn)不同數(shù)據(jù)庫間數(shù)據(jù)的同步[J].計算機與數(shù)字工程,2003,31(5):28-30,57.

        [5] 原小艷,朱強.基于Sockets通信的實時設(shè)備監(jiān)控系統(tǒng)[J].電腦知識與技術(shù),2005,1(30):58-59.

        [6] 羅亞非.基于TCP的Socket多線程通信[J].電腦知識與技術(shù),2009,5(3):563-565,598.

        【通聯(lián)編輯:代影】

        亚洲精品无码不卡在线播he| 久久亚洲中文字幕精品一区四| 国产一区二区三区在线观看免费版| 久久婷婷综合缴情亚洲狠狠| 国产精品久久久久aaaa| 美女视频一区| 99久久国产一区二区三区| 国产精品三区四区亚洲av| 一区二区三区四区午夜视频在线| 国产精品黄色片在线看| 午夜精品一区二区三区的区别| 国产精品久久1024| 日本人妻三级在线观看| 亚洲人成网站在线播放2019| 精品亚洲国产成人av| 加勒比日本东京热1区| 国产亚洲专区一区二区| 偷拍激情视频一区二区三区| 国产精品乱码在线观看| 日本女同伦理片在线观看| 经典三级免费看片天堂| 久久久久无码精品国产app | 大陆国产乱人伦| 精品中文字幕久久久人妻| 日韩精品无码一区二区三区四区| 特黄a级毛片免费视频| 亚洲第一区无码专区| 国产一区二区三区青青草 | 国产99久久精品一区二区| 国产午夜视频免费观看| 亚洲熟女av在线观看| 亚洲熟女www一区二区三区| 免费观看国产精品| 91麻豆精品激情在线观最新| 久久精品99国产精品日本 | 丝袜美腿亚洲综合久久| 国产一区二区三区久久精品| 亚洲中文无码永久免| 宅男久久精品国产亚洲av麻豆| 91九色人妻精品一区二区三区| a级毛片免费观看网站|