안녕하세요 저는 원격 컴퓨터의 스냅 샷을 찍는 프로그램을하고있었습니다.원격 컴퓨터의 스크린 샷
나는 해냈다.
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"));
}
}
그러나이 제대로 작동하지 않습니다. 서버는 자체 스냅 샷을 사용합니다. 해결책을 제시하십시오.
클라이언트 시스템 –
@vijesh에서 screenclient.java가 실행되고 있지 않습니다.하지만 'ScreenClient.java'에는 화면 캡처를위한 코드가 포함되어 있지 않습니다. 그 코드는'ScreenServer.java'에 있습니다. 'robot.createScreenCapture (size);'라는 라인을 보시오. –
오!. 사진 (스냅 샷)을 클라이언트에서 server.and 서버 코드로 전송하여 수신하도록 코드를 제공 할 수 있습니까? –