传送图片的问题(ObjectOutputStream)
我在运行时出现
out of memories的错误
还有
错误指在这里!!!!!
ObjectOutputStream out=new ObjectOutputStream(new GZIPOutputStream(socket.getOutputStream()));
应该怎么改?
请帮忙看一下,谢谢!
//服务器端
public void run(){
try {
java.awt.Robot robot=new java.awt.Robot();
BufferedImage bi=new BufferedImage(800,600,BufferedImage.TYPE_INT_ARGB);
System.out.println("start capture screen");
ObjectOutputStream out=new ObjectOutputStream(new GZIPOutputStream(socket.getOutputStream()));//########错误指在这里!!!!!
System.out.println("create ObjectOutputStream is ok!");
while (true) {
bi=robot.createScreenCapture(new Rectangle(800,600));//?????
System.out.println("create Screen Capture is ok!");
image=new ImageIcon((Image)bi);
out.writeObject(image);
out.flush();
image=null;
try {
Thread.sleep(1500);
}
catch (Exception ex) {
System.err.println("sleep error.");
}
}
}
catch (Exception ex) {
System.err.println("client Error");
}
//客户端
public void run(){
try {
ServerSocket ss=new ServerSocket(port);
System.out.println("server start.");
socket=ss.accept();
System.out.println("accept a client."+socket.getInetAddress() .getHostName());
ObjectInputStream is=new ObjectInputStream(new GZIPInputStream(socket.getInputStream()));
System.out.println("reading data now");
ImageIcon img;
while (true) {
//System.out.println("available: "+is.available());
img=(ImageIcon)is.readObject();
this.label .setIcon(null) ;
this.label .repaint();
this.label.setIcon(img);
this.label .repaint();
img=null;
}
}
catch (Exception ex) {
ex.printStackTrace();
}
}