0
我想做一个Java RAT,但atm我只有屏幕显示。当我运行它,它显示在JFrame的精细屏幕,但它一直拖着相同的图像低一点,每个得出这样的: JFrame打印很奇怪吗?
客户:
import java.awt.AWTException;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.io.IOException;
import java.net.Socket;
import java.util.zip.GZIPOutputStream;
import javax.imageio.ImageIO;
public class Client {
public static void main(String[] args) {
try {
Robot robot = new Robot();
Toolkit toolkit = Toolkit.getDefaultToolkit();
Rectangle screen = new Rectangle((int) toolkit.getScreenSize().getWidth(), (int) toolkit.getScreenSize().getHeight());
Socket socket = new Socket("127.0.0.1", 25565);
GZIPOutputStream out = new GZIPOutputStream(socket.getOutputStream());
while(socket.isConnected()) {
ImageIO.write(robot.createScreenCapture(screen), "png", out);
}
out.close();
} catch (AWTException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
服务器:
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.zip.GZIPInputStream;
import javax.imageio.ImageIO;
public class Server {
public static void main(String[] args) {
try {
ServerFrame frame = new ServerFrame();
ServerSocket serverSocket = new ServerSocket(25565);
Socket socket = serverSocket.accept();
GZIPInputStream in = new GZIPInputStream(socket.getInputStream());
BufferedImage image = null;
while(socket.isConnected()) {
image = ImageIO.read(in);
if(image != null) {
frame.setBufferedImage(image);
}
}
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
ServerFrame:
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import javax.swing.JFrame;
public class ServerFrame extends JFrame {
private BufferedImage image;
public ServerFrame() {
setTitle("RAT");
setSize(1920, 1080);
setVisible(true);
image = null;
}
public void setBufferedImage(BufferedImage image) {
this.image = image;
this.repaint();
}
public void paint(Graphics g) {
if(image != null) {
g.drawImage(image, 0, 0, this);
}
}
}
非常感谢,我不能代表,但如果我能我肯定会:D – user1007883 2012-08-07 17:04:42
没问题:)。如果回答您的问题,您可以将答案标记为正确。很高兴我能帮上忙。 – 2012-08-07 17:09:47