Hello Friends,
My Current Project Is Remote Desktop Connection In Java Programming.
I'm Also Successfully run The Program remote screen Shot Image in client side and sent to server. Server is used this image and convert in video..
But i am access remotely desktop same as remote desktop connection in windows os.
I've attached my code.
please what should I add or modify?
Thanks...
Client Program:
package javaapplication1;
import java.awt.*;
import java.awt.image.*;
import java.io.*;
import java.net.*;
import javax.imageio.ImageIO;
public class ScreenClient {
public static void main(String[] args) throws Exception {
Socket server = new Socket("localhost", 5494);
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("screen.png"));
}
}
Server Program:
package javaapplication1;
import java.awt.*;
import java.awt.image.*;
import java.io.*;
import java.net.*;
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(5494);
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("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();
}
}
}
<