利用java實現(xiàn)一個簡單的遠程監(jiān)控程序_第1頁
利用java實現(xiàn)一個簡單的遠程監(jiān)控程序_第2頁
利用java實現(xiàn)一個簡單的遠程監(jiān)控程序_第3頁
利用java實現(xiàn)一個簡單的遠程監(jiān)控程序_第4頁
利用java實現(xiàn)一個簡單的遠程監(jiān)控程序_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、利用java實現(xiàn)一個簡單的遠程監(jiān)控程序一般的遠程監(jiān)控軟件都是用c或者C+等語言開發(fā)的,而使用java如何來實現(xiàn)相同的功能呢。首先我們先介紹一下一個簡單的遠程監(jiān)控程序的實現(xiàn)原理。功能一,遠程屏幕監(jiān)視必須要有監(jiān)控端與被監(jiān)控端,而且程序保持啟動。被監(jiān)控端獲取本機的屏幕截屏發(fā)圖給監(jiān)控端。監(jiān)控端在本地窗口中顯示被監(jiān)控端發(fā)送過來的圖像。(2)(3)步驟重復(fù)執(zhí)行,這時在監(jiān)控端即可實時監(jiān)視到被監(jiān)控端的桌面操作了。功能二,遠程控制必須要有監(jiān)控端與被監(jiān)控端,而且程序保持啟動。在監(jiān)控端監(jiān)視窗體上執(zhí)行鼠標(biāo)點擊事件。記錄步驟(2)中的鼠標(biāo)點擊的坐標(biāo),及鍵值發(fā)送到被監(jiān)控端。被監(jiān)控接受鼠標(biāo)坐標(biāo),及鍵值,然后再本地屏幕上模擬

2、同樣的點擊動作。0K,現(xiàn)在看下具體的java與語言是如何實現(xiàn)上述功能的。使用java語言要實現(xiàn)截屏的功能就要依靠java類庫中的一個有趣的類java.awt.Robot類【俗稱Java機器人】了功能一,遠程屏幕監(jiān)視/客戶端抓取屏幕快照GuiCamera.javaJava代碼旦BufferedImagescreenshot=2(newRobot().createScreenCapture(,newRectangle(O,0,(int)size.getWidth(),4(int)size.getHeight();/客戶端發(fā)送快照SendThread.javaJava代碼至image=gc.snap

3、Shot();/保存為臨時文件Filefile=newFile(temp.png);FileOutputStreamfileout=newFileOutputStream(file);ImageIO.write(image,png,fileout);fileout.close();/讀取圖像FileInputStreamfileIn=newFileInputStream(file);intlen=(int)file.length();/建立字節(jié)數(shù)組bytebuf=newbytelen;fileIn.read(buf,0,len);/發(fā)送out.write(buf,0,len);out.flus

4、h();/間隔500毫秒6,8101213141161,18120212223242Thread.sleep(500);61Objectoptions=/監(jiān)控端接受圖像,Snap.javaJava代碼審publicvoidrun()while(flag)bytebuf=newbyte102400;tryimgStream=newBufferedInputStream(socket.getInputStream();imgStream.read(buf);ImageIconicon=newImageIcon(Toolkit.getDefaultToolkit().createImage(buf)

5、;lab.setIcon(icon);Filefile=newFile(1.jpg);FileOutputStreamfileOut=newFileOutputStream(file);fileOut.write(buf);fileOut.close();repaint();26272830312333435363,383404142434461Objectoptions=45setVisible(true);46System.out.println(讀取圖象成功!)47catch(Exceptionex)4ex.printStackTrace();49flag=false;505152Sys

6、tem.out.println(服務(wù)器停止);53功能二,遠程控制監(jiān)控端記錄鼠標(biāo)操作Snap.javaJava代碼54內(nèi)部類,主要功能監(jiān)聽鼠標(biāo)事件。記錄坐標(biāo)。5,classkeyAdapetextendsKeyAdapter57鍵盤監(jiān)聽適配器5publicvoidkeyTyped(KeyEvente)59if(e.getKeyChar()=27)按ESC鍵626364666768697071727,747767778798081828,確定,取消;intn=JOptionPane.showOptionDialog(null,是否退出程序?,遠程監(jiān)控系統(tǒng),JOptionPane.OK_CANCE

7、L_OPTION,JOptionPane.QUESTION_MESSAGE,null,/dontuseacustomIconoptions,/thetitlesofbuttonsoptions0);if(0=n)System.exit(0);publicvoidmouseClicked(MouseEvente)System.out.println(雙擊了鼠標(biāo));intx=e.getX();inty=e.getY();if(tempSocket!=null)newCommandMsg(2,tempSocket,x,y).start();publicvoidmousePressed(MouseEv

8、ente)if(e.BUTTON1=MouseEvent.BUTTON1)System.out.println(你按了鼠標(biāo)左鍵);intx=e.getX();inty=e.getY();if(tempSocket!=null)newCommandMsg(3,tempSocket,x,y).start();48586888990919293949,9699899100101102103監(jiān)控端發(fā)送坐標(biāo)Snap.javaJava代碼104publicvoidrun()105out.println(eventType+,+x+,+y);10out.flush();107客戶端獲取鼠標(biāo)坐標(biāo)后,在本機相同

9、坐標(biāo)位置模擬一個鼠標(biāo)點擊操作Coop.javaJava代碼108publicvoidrun()109while(flag)110try111Strings=in.readLine();112decode(s);113switch(method)114/這里的man實際也是Robot的一個實例。115case1:11man.mouseMove(x,y);117break;118case2:119man.mouseMove(x,y);120man.mousePress(InputEvent.BUTTON1_MASK);121122123124121261271281291301,11,2133134131,6137138139man.mouseRelease(InputEvent.BUTTON1_MASK);break;case3:man.mousePress(InputEvent.BUTTON1_MASK);break;case4:man.mouseRelease(InputEvent.BUTTON1_MASK);break;default:break;catch(IOE

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論