




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于 Socket 網(wǎng)絡(luò)編程的服務(wù)器遠(yuǎn)程監(jiān)控系統(tǒng)的實(shí)現(xiàn) 詹璇,呂曉軍,程清波,劉小燕,李明(中國(guó)鐵道科學(xué)研究院電子計(jì)算技術(shù)研究所,北京 100081摘要:本文基于 TCP/IP協(xié)議, 利用 Socket 網(wǎng)絡(luò)編程接口技術(shù), 在客戶端 /服務(wù)器 模式下,設(shè)計(jì)了遠(yuǎn)程服務(wù)器監(jiān)控系統(tǒng),實(shí)現(xiàn)了對(duì)服務(wù)器性能的監(jiān)測(cè)和對(duì)服務(wù)器的 遠(yuǎn)程控制,最后給出了系統(tǒng)的運(yùn)行結(jié)果。關(guān)鍵詞:TCP/IP; Socket ;遠(yuǎn)程監(jiān)控;服務(wù)器Implementation of Server Remote Monitoring System Based on Socket Network ProgrammingZhan Xuan,
2、Lv Xiaojun, Cheng Qingbo, Liu Xiaoyan, Li Ming(Institute of Computing Technologies,China Academy of Railway Sciences,Beijing 100081,China Abstract :Based on the TCP / IP protocol, socket programming interface technology is used in this paper, and a remote server monitoring system is designed in C/S
3、mode, thus the performance monitoring and server controlling is implemented, finally, the result is described in this paper. Key Words:TCP/IP; Socket ; Remote Monitoring; Server0 引言隨著計(jì)算機(jī)應(yīng)用的普及和現(xiàn)代信息技術(shù)的快速發(fā)展,應(yīng)用服務(wù)器在計(jì)算機(jī)應(yīng) 用的各個(gè)領(lǐng)域起著至關(guān)重要的作用,應(yīng)用服務(wù)器的安全與工業(yè)控制系統(tǒng)的運(yùn)行密 切相關(guān)。應(yīng)用服務(wù)器是實(shí)現(xiàn)中間層的方式,為工業(yè)控制系統(tǒng)提供一個(gè)高效、可靠 的運(yùn)行平臺(tái),應(yīng)用服務(wù)器實(shí)現(xiàn)
4、了客戶端的業(yè)務(wù)邏輯和基礎(chǔ)服務(wù),如數(shù)據(jù)訪問、負(fù) 載均衡、事務(wù)控制、安全機(jī)制和失效恢復(fù)等服務(wù)。因此,有必要對(duì)應(yīng)用服務(wù)器的 性能等各方面進(jìn)行監(jiān)控。另外,對(duì)其工作狀況進(jìn)行遠(yuǎn)程監(jiān)測(cè)和控制,不僅可以方 便設(shè)備管理者隨時(shí)了解設(shè)備的工作狀態(tài),設(shè)備出現(xiàn)異常時(shí)主動(dòng)報(bào)警,便于及時(shí)維 修,而且還可以拓寬設(shè)備的服務(wù)范圍,提高工作性能,延長(zhǎng)使用壽命。1 TCP/IP與 Socket 介紹TCP/IP協(xié)議的應(yīng)用開發(fā)接口是 Socket (套接字 ,它是 TCP/IP網(wǎng)絡(luò)環(huán)境下的編 程接口。它提供了不同主機(jī)間進(jìn)程的雙向通信端點(diǎn),開發(fā) Socket 的目的是屏蔽網(wǎng) 絡(luò)底層復(fù)雜的結(jié)構(gòu)和協(xié)議。利用它可以構(gòu)造任意的跨操作系統(tǒng)、跨網(wǎng)絡(luò)
5、協(xié)議的分 布式處理系統(tǒng)。 Socket 是面向客戶 服務(wù)器的模型, 客戶端隨機(jī)申請(qǐng)一個(gè) Socket , 系統(tǒng)為之分配一個(gè)隨機(jī)的 Socket 號(hào); 服務(wù)器擁有全局公認(rèn)的 Socket 號(hào), 任何客戶 都可以向它發(fā)出連接請(qǐng)求和傳送信息請(qǐng)求。在進(jìn)程開始通信之前,雙方必須各自 創(chuàng)建一個(gè)端點(diǎn),否則是沒有辦法建立聯(lián)系的。如下圖所示介紹了 Socket 的客戶 服務(wù)器模型時(shí)序圖。時(shí) 間服務(wù)器 Accept( 處理服務(wù)請(qǐng)求客戶Write(服務(wù)響應(yīng)圖 1 面向連接的客戶 服務(wù)器模型時(shí)序圖首先,服務(wù)器進(jìn)程會(huì)在約定的端口開啟一個(gè) Socket ,來(lái)進(jìn)行監(jiān)聽, Accept(循 環(huán)主要是負(fù)責(zé)在接受隊(duì)伍中將每個(gè)客戶
6、的進(jìn)程分別取出,在完成連接后產(chǎn)生一個(gè) 新的 Socket ,這時(shí)候,服務(wù)器將會(huì)產(chǎn)生一個(gè)新的子進(jìn)程對(duì)來(lái)自于客戶的請(qǐng)求進(jìn)行 專門的處理,在處理完畢后再接著處理下一個(gè)客戶請(qǐng)求。因?yàn)榉?wù)器端進(jìn)行監(jiān)聽 的 Socket 對(duì)新的子進(jìn)程沒有效用, 所以新的子進(jìn)程會(huì)將該 Socket 關(guān)閉, 通過新生 成的 Socket 實(shí)現(xiàn)與客戶端的交互, 直至客戶端將連接關(guān)閉, 新的子進(jìn)程才會(huì)終止。 2 服務(wù)器遠(yuǎn)程監(jiān)控系統(tǒng)的組成和架構(gòu)服務(wù)器遠(yuǎn)程監(jiān)控系統(tǒng)包括對(duì)服務(wù)器的遠(yuǎn)程監(jiān)測(cè)、 服務(wù)器遠(yuǎn)程控制和服務(wù)管理。 其中服務(wù)器遠(yuǎn)程監(jiān)測(cè)主要是對(duì)服務(wù)器的 CPU 、內(nèi)存、網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行實(shí)時(shí)監(jiān)測(cè), 遠(yuǎn)程控制是對(duì)服務(wù)器的進(jìn)程、系統(tǒng)等進(jìn)行遠(yuǎn)程
7、控制,服務(wù)管理是監(jiān)測(cè)服務(wù)中間件 運(yùn)行狀態(tài)和對(duì)服務(wù)中間件進(jìn)行遠(yuǎn)程操作。如下圖所示: 圖 2 服務(wù)器遠(yuǎn)程監(jiān)控系統(tǒng)的組成服務(wù)器遠(yuǎn)程監(jiān)控系統(tǒng)是一個(gè) C/S模式的軟件,在服務(wù)器上安裝 ServerSpy.exe 后主動(dòng)連接客戶端,可以支持多臺(tái)客戶端進(jìn)行監(jiān)控。如下圖 3所示: 圖 3 服務(wù)器遠(yuǎn)程監(jiān)控系統(tǒng)架構(gòu)圖3 服務(wù)器遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)3.1 通信模式設(shè)計(jì)服務(wù)器端和客戶端之間的網(wǎng)絡(luò)通信是實(shí)現(xiàn)各種功能的前提, 客戶端發(fā)送指令, 服務(wù)端接收指令并響應(yīng)。 本系統(tǒng)是在 Delphi7環(huán)境下開發(fā)而成, Delphi 是建立在原 來(lái)的 Windows Socket庫(kù)函數(shù)的基礎(chǔ)上,并進(jìn)行了一系列的包裝,對(duì)相關(guān)的功能進(jìn) 行
8、了封裝,從而使編程變得更加簡(jiǎn)單。其中服務(wù)器端和客戶端的網(wǎng)絡(luò)通信利用了 Delphi 的 Indy 組件, Indy 的全名是 是 Internet Direct ,這是一套開放源代碼的 Internet 控件集,支持大部分流行的 Internet 協(xié)議, 包括 TCP 、 UDP 、 DNS 、 ICMP 等。 本系統(tǒng)主要用到了 INDY 的 idTCPServer 和 idTCPClient 兩個(gè)組件。 idTCPClient 組件封裝一個(gè)完整的 TCP 客戶端程序,支持 Socket 。使用 TIdTCPClient 組件要設(shè)置它的 IP 和 Port 屬性,然后調(diào)用 Connect 方
9、法。 idTCPServer 組件實(shí)現(xiàn)了一個(gè)多線程的服務(wù)端,它使用一個(gè)或者多個(gè)線程來(lái)接 收客戶端的連接,并聯(lián)合 idThreadMgr 分配專門的線程來(lái)處理每一個(gè)客戶端和服 務(wù)器的連接。在線程中維持一個(gè)激活 ThreadClass 實(shí)例的列表。下面給出了idTCPServer 的工作原理: 圖 4 idTCPServer的工作原理因?yàn)?INDY 組件是基于 SOCKET 阻塞工作模式,阻塞套接字調(diào)用在完成工作之 后才返回,如果在程序主線程中進(jìn)行此類調(diào)用,應(yīng)用程序?qū)⒉荒苷L幚碛脩艚?面消息,從而造成了用戶界面的“死鎖” 。而在客戶端添加一個(gè) TidAntiFreeze 組件就可以避免用戶界面
10、“死鎖” 的發(fā)生, TIdAntiFreeze 在 INDY 內(nèi) 部 定 時(shí) 中 斷 對(duì) 棧 的 調(diào) 用 , 并 在 中 斷 期 間 調(diào) 用 Application.ProcessMessages 方法處理消息,而外部的 INDY 調(diào)用繼續(xù)保存阻塞狀 態(tài),就好像 TIdAntiFreeze 對(duì)象不存在一樣。這樣界面“死鎖”的問題就可以得到 完滿的解決。在客戶端添加 idTCPClient 組件,在服務(wù)器端添加 idTCPServer 組件, 這樣它們 之間就形成了 TCP 通信,具體客戶端和服務(wù)器端之間的通信如下圖: 圖 5 客戶端和服務(wù)器端的通信3.2客戶端與服務(wù)器端程序設(shè)計(jì)客戶端在執(zhí)行每個(gè)
11、監(jiān)測(cè)或者控制請(qǐng)求時(shí),定義一個(gè)字符串鏈表,將請(qǐng)求的每 個(gè)命令加入鏈表中,并在鏈表中逐個(gè)編號(hào),例如查看進(jìn)程的命令編號(hào)為 22,關(guān)閉 某個(gè)可疑進(jìn)程的命令編號(hào)為 23。然后發(fā)送命令, 將客戶端地址和發(fā)送命令編號(hào)作 為參數(shù)發(fā)送給服務(wù)器端,服務(wù)器端來(lái)執(zhí)行相應(yīng)的操作。procedure TMainForm.BtnTerminateProcClick(Sender: TObject; /關(guān)閉進(jìn)程 varStrCmd:TStrings;beginif(LVProc.Selected=nil thenbeginShowMessage('請(qǐng)選擇你要關(guān)閉的進(jìn)程! 'exit;end;StrCmd:=T
12、StringList.Create;StrCmd.Add('23|'+LVProc.Selected.SubItems.Strings1;SendCommand(StrCmd,CBClientP.Text;end; 服務(wù)器端在接收到客戶端發(fā)送來(lái)的命令時(shí),首先進(jìn)行服務(wù)探測(cè),即判斷是哪 個(gè)客戶端發(fā)送來(lái)的消息,識(shí)別客戶端發(fā)送來(lái)的主機(jī) IP 地址和端口號(hào),與它建立建 立, 開始線程的執(zhí)行。 在線程執(zhí)行時(shí), 先判斷命令號(hào), 即客戶端發(fā)送的命令編號(hào), 然后執(zhí)行相應(yīng)的操作。 try StrReceived:=AThread.Connection.ReadLn(#10#10; StrRecei
13、ved:=Trim(StrReceived; StrMsg:=TStringList.Create; StrMsg.AddStrings(ExtractStr(StrReceived,'|' CmdId:=StrToInt('$'+StrMsg0; MonThreadId:=AThread; case CmdId of $0: /CONNECT START,服務(wù)探測(cè),連接到探測(cè)器 begin TCPSender.Host:=AThread.Connection.Socket.Binding.PeerIP; TCPSender.Port:=StrToInt(Str
14、Msg1; TCPSender.Connect(; if(TCPSender.Connected=false then begin exit; end; if(SenderThread.Terminated then SenderThread.Execute else if(SenderThread.Suspended then SenderThread.Resume; end; 3.3 運(yùn)行結(jié)果 運(yùn)行結(jié)果如下圖所示。下面展示了服務(wù)器的部分監(jiān)測(cè)結(jié)果,圖 6 為 CPU 使用 情況,圖 7 為內(nèi)存使用情況,圖 8 為進(jìn)程管理情況,圖 9 為服務(wù)管理。 圖 6 CPU 使用情況 圖 7 內(nèi)存使用情
15、況 圖 8 進(jìn)程管理 圖 9 服務(wù)管理 4 總結(jié) 本文介紹了在客戶端 / 服務(wù)器模式下的遠(yuǎn)程服務(wù)器監(jiān)控系統(tǒng),該系統(tǒng)基于 TCP/IP 協(xié)議,利用 Socket 網(wǎng)絡(luò)編程接口技術(shù),實(shí)現(xiàn)了對(duì)服務(wù)器性能的監(jiān)測(cè)和對(duì) 服務(wù)器的遠(yuǎn)程控制,詳細(xì)介紹了服務(wù)器與客戶端通信模式設(shè)計(jì),客戶端與服務(wù)器 端設(shè)計(jì),最后給出了運(yùn)行結(jié)果。 參考文獻(xiàn): 1 蔣東興, 林鄂華. Windows Sockets 網(wǎng)絡(luò)程序設(shè)計(jì)大全M. 北京: 清華大學(xué)出版社, 1999. 2 范建華,胥光輝,張濤等譯. RICHARD S W. TCP/IP 詳解,卷 1:協(xié)議M. 北京:機(jī)械 工業(yè)出版社,2000. 3 李存斌, 汪兵. Delphi 深度編程及項(xiàng)目應(yīng)用開發(fā)M. 北京: 中國(guó)水利水電出版社, 2002: 180-188. 4 康鴻儒,陳虹, 曹衛(wèi), 基于 Internet 的遠(yuǎn)程操作技術(shù)研究J, 工業(yè)控制計(jì)算機(jī), 2002, 15(1) :25-29. 5 楊志紅, 徐襲, 江漢紅
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 專項(xiàng)11 古詩(shī)文閱讀(試卷版)
- 人教版《美術(shù)》二年級(jí)上冊(cè)第8課《對(duì)印的圖形》教案
- 應(yīng)急聯(lián)動(dòng)指揮中心設(shè)計(jì)方案
- 管理會(huì)計(jì)試卷及答案 共2套
- 5.2 生活中的透鏡 說(shuō)課稿2025年初中人教版物理八年級(jí)上冊(cè)
- 暑期敬老院社會(huì)實(shí)踐報(bào)告
- 雙十一文胸店活動(dòng)策劃
- 二零二五年度北京市旅店智能化客房租賃合同
- 人力資源居間合同
- 2025年度北京市健康產(chǎn)業(yè)員工勞動(dòng)合同參考
- 越南《投資法部分條款實(shí)施的詳細(xì)規(guī)定和指導(dǎo)》(31-2021-ND-CP)
- 2023屆高考模擬作文“完美與缺陷”導(dǎo)寫及范文
- TGIA 004-2020 垃圾填埋場(chǎng)地下水污染防治技術(shù)指南
- GB/T 22576.7-2021醫(yī)學(xué)實(shí)驗(yàn)室質(zhì)量和能力的要求第7部分:輸血醫(yī)學(xué)領(lǐng)域的要求
- GB/T 16475-2008變形鋁及鋁合金狀態(tài)代號(hào)
- 《男生女生》優(yōu)秀課件(共21張PPT)
- 《農(nóng)業(yè)保險(xiǎn)學(xué)》第7章畜牧保險(xiǎn)
- 《服飾手工藝欣賞》課件
- 合同的訂立課件
- 結(jié)直腸癌醫(yī)學(xué)課件全面版
- 發(fā)電機(jī)保養(yǎng)檢查記錄表
評(píng)論
0/150
提交評(píng)論