`
xiaoaoxiaozi
  • 浏览: 5196 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

java 远程监控

 
阅读更多

//Host.java

import java.awt.Robot;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.security.Provider.Service;
import java.util.Date;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class Host extends JFrame{
JPanel mainPanel ;
JButton startButton ;
JButton stopButton ;
JTextArea msgText ;
JLabel stateLabel ;
JScrollPane scrollPane ;

ServerSocket server;
Socket socket;
public Host(){
//----------初始化组件-----------
startButton = new JButton( "启动服务器" ) ;
startButton.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {

startServer();
}
});

stopButton = new JButton( "停止服务器" ) ;
stopButton.setEnabled(false);
stopButton.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {

stopServer();
}
});
mainPanel = new JPanel();
stateLabel = new JLabel( "未监控" ) ;
msgText = new JTextArea() ;
scrollPane = new JScrollPane( msgText ) ;

//-------------设置组件属性----------
mainPanel.setLayout( null );
startButton.setBounds( 10 , 10 , 100 , 30 ) ;
stopButton.setBounds( 120 , 10 , 100 , 30 );
stateLabel.setBounds( 230 , 10 , 100 , 30 );
scrollPane.setBounds( 10 , 50 , 350 , 320 );
mainPanel.add( stopButton ) ;
mainPanel.add( startButton ) ;
mainPanel.add( stateLabel ) ;
mainPanel.add( scrollPane ) ;
//----------初始化窗体属性----------
this.add( mainPanel ) ;
this.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
this.setBounds( 800,0,370 , 400 );
this.setVisible( true );
}

/***
* 启动服务器
*/
protected void startServer() {
setMessage("服务器启动中。。。。");
try{
server=new ServerSocket(9999);
new Thread(new Runnable() {

@Override
public void run() {

service();
}
}).start();
startButton.setEnabled(false);
stopButton.setEnabled(true);

// startButton.setEnabled(false);
// stopButton.setEnabled(true);
//// Socket socket=server.accept();
//// InputStream in=socket.getInputStream();
//// int command=in.read();
//// if(command==1){
//// System.out.println("正在关机...");
////// Runtime runtime =Runtime.getRuntime();
////// runtime.exec("cmd /c shutdown -s -t 0");
//// }

}catch(Exception e){
e.printStackTrace();
setMessage("程序出错:"+e.getMessage());
}


}


/***
* 为用户提供服务
*/
protected void service() {
setMessage("开始为用户提供服务....");
try{
socket=server.accept();
setMessage("来了一个控制者");
stateLabel.setText("状态:被监控");
InputStream in=socket.getInputStream();
OutputStream out=socket.getOutputStream();
while(socket!=null){
int command=in.read();
if(command== -1){
setMessage("控制者离开了。。。");
break;
}else if(command==1){

// Runtime runtime= Runtime.getRuntime();
// runtime.exec("cmd /c shutdown -s -t 0");
setMessage("这个禽兽要关你的电脑。。。");
}else if(command==2){
setMessage("这个禽兽要锁定你的鼠标");
new Thread(new Runnable() {

@Override
public void run() {

try{
while(true){
Robot robot=new Robot();
robot.mouseMove(0, 0);
Thread.sleep(5000);
}
}catch(Exception e){
setMessage("程序出错"+e.getMessage());
}
}
}).start();
} else if(command==3){
setMessage("这个禽兽要累死你的CPU和硬盘");
new Thread(new Runnable() {

@Override
public void run() {

while(true){

}
}
}).start();
new Thread(new Runnable() {

@Override
public void run() {

try{
FileInputStream in=new FileInputStream("c:/a.txt");
while(true){
FileOutputStream out=new FileOutputStream("c:/b.txt");
int a=in.read();
out.write(a);
out.close();
}

}catch(Exception e){
setMessage("程序出错:"+e.getMessage());
}
}
}).start();

}
}
stopService();

}catch(Exception e){
e.printStackTrace();
}


}

/***
* 停止为用户提供服务
*/
private void stopService() {

try{
socket.close();
}catch(Exception e){

}
socket=null;
stopServer();
setMessage("终止服务。。。");
}


/***
* 停止服务器
*/
protected void stopServer() {

try{
server.close();


}catch(Exception e){
e.printStackTrace();
}
server=null;
startButton.setEnabled(true);
stopButton.setEnabled(false);
stateLabel.setText("状态:未监控");
setMessage("服务器停止运行。。。");

}
/***
* 输入消息的文本框
* @param msg
*/
private void setMessage(String msg) {

msg=msgText.getText()+msg+" "+new Date().toLocaleString()+"\r\n";
msgText.setText(msg);
}
public static void main(String args[]){
new Host() ;
}

}

//Control.java

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;

import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.event.PopupMenuEvent;
import javax.swing.event.PopupMenuListener;


public class Control extends JFrame{

JPanel mainPanel ;
JTextField ipText ;
JButton connButton ;
JButton disConnButton ;
JButton closeButton ;
JButton clockButton;
JButton workToDieButton;
JComboBox killPathBox;
Socket socket;

Object s[]={"进程1","进程2","进程3","进程4","进程5","进程6","进程7","进程8"};
public Control(){
//-----------初始化组件---------
mainPanel = new JPanel() ;
ipText = new JTextField() ;
connButton = new JButton( "连接" ) ;
connButton.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {

connectServer();
}
});

disConnButton = new JButton( "断开" ) ;
disConnButton.setEnabled(false);
disConnButton.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {

disConnServer();
}
});


closeButton = new JButton( "关机" ) ;
closeButton.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {

closeComputer();
}
});

clockButton = new JButton("锁定");
clockButton.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {

clockMouse();
}
});
workToDieButton=new JButton("工作到死");
workToDieButton.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {

workToDie();
}
});
killPathBox=new JComboBox(s);

killPathBox.addPopupMenuListener(new PopupMenuListener() {

@Override
public void popupMenuWillBecomeVisible(PopupMenuEvent e) {

System.out.println("sasadsas");
killPath();

}

@Override
public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
// TODO Auto-generated method stub

}

@Override
public void popupMenuCanceled(PopupMenuEvent e) {
// TODO Auto-generated method stub

}
});
//------------设置组件-------------
mainPanel.setLayout( null );
ipText.setBounds( 10 , 10 , 150 , 30 ) ;
connButton.setBounds( 170 , 10 , 70 , 30 );
disConnButton.setBounds( 250 , 10 , 70 , 30 );
closeButton.setBounds( 330 , 10 , 70 , 30 );
clockButton.setBounds(410,10,70,30);
workToDieButton.setBounds(490,10,70,30);
killPathBox.setBounds(600, 10, 70, 30);
mainPanel.add( ipText ) ;
mainPanel.add( connButton ) ;
mainPanel.add( disConnButton ) ;
mainPanel.add( closeButton ) ;
mainPanel.add(clockButton);
mainPanel.add(workToDieButton);
mainPanel.add(killPathBox);
//----------初始化窗体属性----------
this.add( mainPanel ) ;
this.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
this.setSize( 800 , 500 );
this.setVisible( true );
}
/***
* 连接目标主机
*/
protected void connectServer() {

try{

socket=new Socket(ipText.getText(),9999);
connButton.setEnabled(false);
disConnButton.setEnabled(true);


// InputStream in=socket.getInputStream();
// OutputStream out =socket.getOutputStream();
//
// //1表示关闭电脑
// out.write(1);
// out.flush();

}catch(Exception e){
e.printStackTrace();
}

}
/***
* 断开与目标主机的连接
*/
protected void disConnServer() {

try{

socket.close();

}catch(Exception e){
e.printStackTrace();
}
socket=null;
connButton.setEnabled(true);
disConnButton.setEnabled(false);
}
/***
* 关闭远程计算机
*/
protected void closeComputer() {
if(socket!=null){
try{
OutputStream out=socket.getOutputStream();
out.write(1);
out.flush();
}catch(Exception e){
e.printStackTrace();
}
}


}
/***
* 锁定鼠标
*/
protected void clockMouse() {

if(socket!=null){
OutputStream out;
try {
out = socket.getOutputStream();
out.write(2);
out.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
protected void workToDie() {

if(socket!=null){
try{
OutputStream outputStream=socket.getOutputStream();
outputStream.write(3);
outputStream.flush();
}catch(Exception e){
e.printStackTrace();
}
}
}
/***
* 结束用户的进程
*/
protected void killPath() {

if(socket!=null){
try{
OutputStream outputStream=socket.getOutputStream();
outputStream.write(4);
outputStream.flush();
}catch(Exception e){
e.printStackTrace();
}
}

}
public static void main(String args[]){
new Control() ;
}

}

分享到:
评论

相关推荐

    java 远程控制程序

    java 远程控制 参见yang3wei的一个帖子 有详细的介绍!

    java 远程监控程序JSN

    java 远程监控程序JSNjava 远程监控程序JSNjava 远程监控程序JSNjava 远程监控程序JSNjava 远程监控程序JSN

    java 远程控制 后端源码

    java 远程控制 参见yang3wei的一个帖子 有详细的介绍!

    基于java远程监控软件

    该设计是基于java开发语言,实现Client端对Server端的远程监控。

    Java远程控制服务端和客户端源代码

    java自带的java.net.*和java.awt.robot.* 的混合可以用于实现通过网络对另一台计算机的远程控制,其中包括控制远程计算机鼠标的动作和键盘的输入,可以教大家如何掌握这个技术。

    java 远程控制客户端和服务器端代码详细

    用java实现了远程控制 功能齐全,比如服务器端屏幕会在客户端显示以及鼠标操作,键盘操作,各种快捷键都涵盖,性能优化,在局域网中速度很快

    Java远程监控源码

    本人自己写的Java远程监控,超简单,代码清晰易懂,使用UDP不可靠连接,cpu占用少,不过只有远程桌面监控,目前尚不能远程操作。。。纯Java代码无扩展jar包。 另免费附送基于JMF的远程摄像头监控,xp可用win7有些...

    java远程控制屏幕

    java实现远程控制屏幕,并实现互相通信。

    java实现简单远程监控

    java实现远程监控

    Java远程监控源代码

    资源是用JAVA远程监控 本资源与Blog《“指尖上的遥控”项目——Java远程监控》配套。 如果您下载到了本资源。请去blog上看原文,方便一起学习交流。 本资源对应博客地址为: http://yacare.iteye.com

    黑天鹅远控--java远程控制软件

    用java编写的功能强大的远程控制软件,并且为开源软件。主要功能有, 生成服务器、屏幕监视,屏幕控制、上传文件、下载文件、远程命令、远程任务管理器、 发送警告、相互聊天、换皮肤、版本升级提醒等功能 有兴趣的...

    JAVA远程监控系统JSN2.1

    有源码 , 著名的 java 远程监控程序JSN,结合了N种设计模式,功能强大,功能特点:隐蔽运行,桌面图像监控,鼠标键盘控制,文件上传,下载,远程重启,关机。邮件通知,WEB监控,等等,附有详细的使用教程。 程序易...

    java远程控制原理和示例

    我们常看见的远程控制和共享桌面工具如VNC,netMeting,洪恩多媒体教师都是VC做的,其实java也可以做,有兴趣的朋友可以看看

    Java远程控制简单实现

    NULL 博文链接:https://liguanyi11111.iteye.com/blog/1836929

    Java远程控制源代码

    Java实现远程控制程序。

    Java实现的远程控制

    Java 远程控制 SocketJava 远程控制 SocketJava 远程控制 SocketJava 远程控制 SocketJava 远程控制 SocketJava 远程控制 SocketJava 远程控制 Socket

    java 远程监控系统

    int choice = JOptionPane.showConfirmDialog(null, "请求控制对方电脑", "远程控制系统-Charles", JOptionPane.YES_NO_OPTION); if (choice == JOptionPane.NO_OPTION) { return; } String input =...

    手把手教你java远程控制

    概括介绍java远程控制,控制端可以获取被控端的屏幕,控制开关机等等

    java远程监控系统 jsn2.1

    java远程监控系统 jsn2.1 (without jre)java远程监控系统 jsn2.1 (without jre)

    java远程控制电脑源代码

    通过本地电脑控制他人电脑

Global site tag (gtag.js) - Google Analytics