freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計-基于udp協(xié)議的遠程控制系統(tǒng)的設(shè)計與實現(xiàn)-閱讀頁

2024-12-21 19:10本頁面
  

【正文】 文考慮使用 UDP 協(xié)議來進行控制端與被 控端之間的 通 ,尤其可以利用 Winsock 在 UDP 協(xié)議下的廣播功能來實現(xiàn)對全體被控端的遠程關(guān)機、重啟等操作。圖 1 描述了主控端與被控端之間的控制和通信機制?;?C/S 結(jié)構(gòu)設(shè)計監(jiān)控系統(tǒng),將有利于系統(tǒng)的集約化管理。 客戶端和服務(wù)端之間采用 UDP 協(xié)議傳送信息。 客戶端檢測流程 客戶端發(fā)送到服務(wù)端的信息稱為“消息”??蛻舳笋v留程序有兩個模塊:一是定時 對特定的軟件進程進行模塊檢測,此模塊定時檢測進程并向服務(wù)端發(fā)送相關(guān)消息,進行相關(guān)處理;二是執(zhí)行客戶端指令模塊,此模塊主要功能是執(zhí)行服務(wù)端指令。 第 8 頁 如果進程存在、且正常響應(yīng),則按照規(guī)定的格式發(fā)送“進程存在、進程響應(yīng)”信息到服務(wù)端; 如果進程不存在,先發(fā)送“進程 不存在”信息到服務(wù)端,然后按照配置文件中規(guī)定的處理方式進行操作; 如果進程存在,但是沒有響應(yīng),則先向服務(wù)端發(fā)送“進程存在、進程無響應(yīng)”信息,然后按照配置文件規(guī)定的處理方式進行操作。 雖然在檢測配置文件中規(guī)定了重啟進程或重啟計算機的操作,但為了防止檢測程序出錯、相關(guān)進程軟件完整性受損等客戶端計算機自身無法解決的問題,規(guī)定服務(wù)端可以向客戶端發(fā)送以下指令:“更新進程軟件 包”;“立即檢測進程”;“重啟計算機”。 收到客戶端發(fā)送的“進程存在、進程響應(yīng)”信息時,則提示“進程正常工作”。指令發(fā)送操作按以下流程進行。 發(fā)出“立即檢測進程”指令,提示“正在檢測進程”,等待客戶端返回信息。 發(fā)出“重啟計算機”指令后,提示“正在重新啟動計算機”,然后每隔 30 秒檢測一次網(wǎng)絡(luò)連通狀況,如持續(xù) 5 分鐘仍無響應(yīng)時,采用語音報警的方式,提請人工干預(yù),系統(tǒng)掛起,直到網(wǎng)絡(luò)通訊正常后進入下一流程。收到“進程存在、進程響應(yīng)”信息后,則提示“進程正常工作”,結(jié)束發(fā)送指令操作;否則進入下一流程。然后每隔 30 秒檢測一次網(wǎng)絡(luò)連通狀況,如持續(xù) 2 分鐘仍無響應(yīng)時,采用語音報警的方式,提請人工干預(yù),系統(tǒng)掛起,直到網(wǎng)絡(luò)通訊正常后進入下一流程。收到“進程存在、進程響應(yīng)”信息后,則提示“進程正常工作”,結(jié)束發(fā)送指令操作;否則采用語音報警的方式,提請人工操作。 假設(shè)一個需要在客戶端運行的進程對應(yīng)的程序名為 。 Process[] MyProcesses = Process. GetProcessesByName( MyProgram) 。在 環(huán)境下, 命名空間包含一個名為 UdpClient 的類。 C實現(xiàn) UDP通訊客戶 端關(guān)鍵代碼如下: using 。 string RemoteIP=" " 。//服務(wù)端端口 IPEndPoint MyRemoteEndPoint = new IPEndPoint( ( RemoteIP), RemotePort) 。 Byte[] MyData=. ( "需要發(fā)送的消息") 。 ( MyData, , MyRemoteEndPoint) 。//本地服 務(wù)端地址 int MyPort = 8800。 while ( true) { IPEndPoint MyEndPoint = new IPEndPoint( ( MyIP), MyPort) 。 //獲得到達本地的信息 string MyInfo=. Default. GetString( MyData) 。新建一個 Application,將默認(rèn)窗體的Name 屬性設(shè)為 “Client”。 在 中加入變量定義 TMemoryStream *BmpStream。 //發(fā)送每一筆數(shù)據(jù)后剩余的字節(jié)數(shù) void __fastcall TClient::ScreenCap(int LeftPos,int TopPos,int RightPos,int BottomPos)。 } 在 Client 的 OnDestroy 事件添加代碼: void __fastcall TClient::FormDestroy(TObject *Sender) { delete BmpStream。 char Buf[2048]。 int SendSize。 CUDPReadStream(MyStream)。 MyStreamRead(amp。//讀取控制碼 delete MyStream。 if((1,4)==show) {// 控制碼前 4 位為 “show”表示主控機發(fā)出了抓屏指令 if(BmpStreamSize==0)//沒有數(shù)據(jù)可發(fā),必須截屏生成數(shù)據(jù) { TmpStr=(6,() 5)。 TmpStr=(()+2,() ngth()+1)。 TmpStr=(()+2,() ngth()+1)。 TmpStr=(()+2,() RightPos.Length()+1)。 第 14 頁 ScreenCap(StrToInt(LeftPos),StrToInt(TopPos),StrToInt(RightPos),StrToInt(BottomPos))。 else SendSize=LeftSize。 LeftSize=LeftSizeSendSize。 //清空流 CUDPRemoteHost=FromIP。 //主控機端口 CUDPSendBuffer(Buf,SendSize,SendSize)。 HBITMAP Bhandle。 Graphics::TBitmap *Bitmap=new Graphics::TBitmap()。 RectHeight=BottomPosTopPos。 DestDC=CreateCompatibleDC(SourceDC)。 SelectObject(DestDC,Bhandle)。 BitmapHandle=Bhandle。 BmpStreamPosition=0。 delete Bitmap。 ReleaseDC(Bhandle,SourceDC)。 第二步,編制 文件。加入 TNMUDP控件, Name 屬性設(shè)為 “SUDP”; LocalPort 屬性設(shè)為 “2222”,讓控件 SUDP監(jiān)視主控機的 2222 端口,當(dāng)有數(shù)據(jù)發(fā)送到該口時,觸發(fā)控件 SUDP 的OnDataReceived 事件; RemotePort 屬性設(shè)為 “1111”,當(dāng)控件 SUDP 發(fā)送數(shù)據(jù)時,將數(shù)據(jù)發(fā)到受控機的 1111 口。 RsltStream=new TMemoryStream。 delete RsltStream。 C=String(show )+Edit1Text。 SUDPRemotePort=2223。 SUDPSendBuffer((),(),())。 RsltStreamClear()。 第 16 頁 if(NumberBytes0) { ShowMessage(未找到主機 )。 } SUDPReadStream(TmpStream)。 if(NumberBytesBufSize) //數(shù)據(jù)已讀完 { RsltStreamPosition=0。 TmpStreamClear()。 } else { TmpStreamClear()。 // SUDPRemoteHost=Edit2Text。 } } 存為 “Server\”和 “Server\”,并編譯。 不必像 TCP 協(xié)議那樣占用較多的寬帶和系統(tǒng)資源, 客戶端和服務(wù)端都可能同時處理多個進程,這樣 就需要進行跨線程調(diào)用,為了線程安全,可以采取用委托的方法來實現(xiàn)。因此 利用 FTP 操作就可以實現(xiàn)進程軟件包的更新,利用 Windows 操作系統(tǒng)的 API 函數(shù) ExitWindows Ex, 可以實現(xiàn)計算機的重啟。因此,本系統(tǒng)具有廣泛的應(yīng)用價值,在遠程控制方面是一個比較好的方
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1