Я пытаюсь сделать снимок экрана с сервера, используя класс Robot, затем отправить его на Android, а затем отобразить снимок экрана в виджете просмотра изображений.
это мой код сервера:
public static void main(String[] args) {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
try {
ServerSocket server = new ServerSocket(400);
System.out.println("Running.....");
while (true) {
Socket serverSockt = server.accept();
System.out.println("Accept.....");
Toolkit toolKit = Toolkit.getDefaultToolkit();
Dimension dimension = toolKit.getScreenSize();
Robot robot = new Robot();
BufferedImage screenshot = robot.createScreenCapture(new Rectangle(dimension));
ImageIcon icon = new ImageIcon(screenshot);
ObjectOutputStream oos = new ObjectOutputStream(serverSockt.getOutputStream());
oos.writeObject(icon);
oos.flush();
oos.close();
serverSockt.close();
}
} catch (IOException ex) {
Logger.getLogger(VNCserver.class.getName()).log(Level.SEVERE, null, ex);
} catch (AWTException ex) {
Logger.getLogger(VNCserver.class.getName()).log(Level.SEVERE, null, ex);
}
}
});
t.start();
}
и этот код клиента (android):
btnConnect.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Thread th = new Thread(new Runnable() {
@Override
public void run() {
try {
Socket clinetSocket = new Socket(txtIP.getText().toString(), Integer.parseInt(txtPort.getText().toString()))
ObjectInputStream ois = new ObjectInputStream(clinetSocket.getInputStream());
byte[] buffer = (byte[]) ois.readObject();
img = BitmapFactory.decodeByteArray(buffer, 0, buffer.length);
viwe.setImageBitmap(img);
clinetSocket.close();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
});
th.start();
}
});
Я не знаю, где это идет не так?, И яя не получаю ошибку IOException, моя первая мысль, может быть, мой клиент получает пустой поток ввода.Любая помощь ?Какую ошибку я совершил?если весь мой код неверен ... тогда как я могу заставить сервер сделать снимок экрана, затем отправить его клиенту Android и отобразить снимок экрана в режиме просмотра изображений или на холсте.