我正在尝试创建一个服务器 - 客户端模型,服务器可以在其中查看客户端在其系统上正在执行的操作。我想通过套接字(skt)捕获并发送图像。如何显示服务器收到的图像。
客户线程:
screenShot = new Robot().createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));
ImageIO.write(screenShot, "PNG", skt.getOutputStream());
服务器线程:
BufferedImage image = ImageIO.read(connarray.get(0).getInputStream());
Graphics g = image.getGraphics();
g.drawImage(image, 500, 500, null);
答案 0 :(得分:0)
你这里没有提出实际问题,但我可以做一些观察。
您的客户端和服务器代码都在捕获并且压缩异常。如果客户端或服务器端抛出任何异常,您的代码将丢弃所有证据。变化
} catch(Exception ew) { }
到
} catch(Exception ew) { ew.printStackTrace(); }
如果有异常被抛出,这将告诉你它们是什么。 (在生产代码中,您应该记录异常而不是调用printStackTrace(...)
...但这是以后的教训。)
每隔1/10秒截取一次屏幕截图会在客户端和服务器端产生大量负载。
现有(非Java)工具可用于此类工作。