客户端的错误代码com.sun.image.codec.jpeg.ImageFormatException: Not a JPEG file: starts with 0x52 0x45
at sun.awt.image.codec.JPEGImageDecoderImpl.readJPEGStream(Native Method)
at sun.awt.image.codec.JPEGImageDecoderImpl.decodeAsBufferedImage(Unknown Source)
at ClientTest.getScreen(ClientTest.java:324)
at ClientTest.run(ClientTest.java:351)
at java.lang.Thread.run(Unknown Source)
客户端接收图像的代码
/*3.还原屏幕图像方法*/
private void getScreen(InputStream input)
{
try{
//对输入流中的图像数据进行解压
JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(input);
//将解压后的数据存放到图像缓冲区
BufferedImage image = decoder.decodeAsBufferedImage();
this.image = image;
//设置显示的图像大小
this.setPreferredSize(new Dimension(image.getWidth(),image.getHeight()));
this.updateUI();
}
catch(Exception e)
{
e.printStackTrace();
}
}/*4.线程run(),接收传来的屏幕图像数据*/
public void run()
{
byte[] bytes = new byte[409600];
while(!ended)
{
try
{
//接收传来的图像屏幕数据包
DatagramPacket packet = new DatagramPacket(bytes,bytes.length);
socket.receive(packet);
//将控制信号指令数据压入字节数组输入流
ByteArrayInputStream input = new ByteArrayInputStream(
packet.getData(),packet.getOffset(),packet.getLength());
getScreen(input);
}//end try
catch(Exception e)
{
}
}//end while
}//end run
问题出在哪了啊?新手,没有积分的,谢谢了~~~