你好我正在做一个远程计算机快照的程序。远程计算机的屏幕截图
我完成了。
ScreenServer.java。
import java.net.*;
import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.ImageIO;
public class ScreenServer {
public static void main(String[] args) throws Exception {
Robot robot = new Robot();
BufferedImage screen;
while (true) {
ServerSocket server = new ServerSocket(6659);
Socket client = server.accept();
Rectangle size = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
screen = robot.createScreenCapture(size);
int[] rgbData = new int[(int) (size.getWidth()*size.getHeight())];
screen.getRGB(0,0, (int) size.getWidth(), (int) size.getHeight(), rgbData, 0, (int) size.getWidth());
OutputStream baseOut = client.getOutputStream();
ObjectOutputStream out = new ObjectOutputStream(baseOut);
ImageIO.write(screen, "png", new File("d:\\orig_screen.png"));
out.writeObject(size);
for (int x = 0; x < rgbData.length; x++) {
out.writeInt(rgbData[x]);
}
out.flush();
server.close();
client.close();
out.close();
baseOut.close();
}
}
}
ScreenClient.java
import java.net.*;
import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.ImageIO;
public class ScreenClient {
public static void main(String[] args) throws Exception {
Socket server = new Socket("172.22.6.50",6659);
ObjectInputStream in = new ObjectInputStream(server.getInputStream());
Rectangle size = (Rectangle) in.readObject();
int[] rgbData = new int[(int)(size.getWidth() * size.getHeight())];
for (int x = 0; x < rgbData.length;x++) {
rgbData[x] = in.readInt();
}
in.close();
server.close();
BufferedImage screen = new BufferedImage((int) size.getWidth(), (int) size.getHeight(), BufferedImage.TYPE_INT_ARGB);
screen.setRGB(0,0, (int) size.getWidth(), (int) size.getHeight(), rgbData, 0,(int)size.getWidth());
ImageIO.write(screen, "png", new File("d:\\screen.png"));
}
}
但它不能正常工作。服务器采用它自己的快照。请提供解决方案。
否客户端系统上正在运行screenclient.java – 2011-03-21 04:59:25
@vijesh - 但是'ScreenClient.java'不包含用于屏幕捕获的代码。该代码在'ScreenServer.java'中。看到说'robot.createScreenCapture(size);'? – 2011-03-21 05:18:36
哦!可以提供代码将图片(快照)从客户端发送到服务器和服务器代码,以便接收相同的内容。 – 2011-03-21 05:23:19