Hey Leute,
hab mal wieder ein Problem. Ich versuche zur Zeit in regelmäßigen Abständen(5 sec, später hoffentlich schneller) ein Bild vom Desktop des Clients an den Server zu schicken. Das Bild nehm ich über die Klasse Robot auf und schicke es dann mittels ImageIO.write und einem ObjectOutputStream an den Server. Dieser empfäbgt das Bild und gibt es auf einem Janel aus. Sowohl das Empfangen, als auch das Senden laufen in einem eigenen Thread in einer while(true) Schleife. Hier mal die wichtigsten Codeausschnitte:
Dies funktioniert so auch schon oft, aber eben nicht sehr lange, denn es kommen verschiedenste Exceptions beim Empfangen der Bilder. Hier sind mal einige (Zeile 52 in der Fehlermeldung entspricht Zeile 8 im Serverausschnitt):
Ich hoffe das reicht erstmal an Information, damit ihr mir helfen könnt.
Danke, euer stevey
hab mal wieder ein Problem. Ich versuche zur Zeit in regelmäßigen Abständen(5 sec, später hoffentlich schneller) ein Bild vom Desktop des Clients an den Server zu schicken. Das Bild nehm ich über die Klasse Robot auf und schicke es dann mittels ImageIO.write und einem ObjectOutputStream an den Server. Dieser empfäbgt das Bild und gibt es auf einem Janel aus. Sowohl das Empfangen, als auch das Senden laufen in einem eigenen Thread in einer while(true) Schleife. Hier mal die wichtigsten Codeausschnitte:
Java:
//Client:
oos = new ObjectOutputStream(socket.getOutputStream());
public void run() {
while(true) {
try {
BufferedImage img = r.createScreenCapture(new Rectangle(0,0,1600,900));
ImageIO.write(img, "png", oos);
oos.flush();
oos.reset();
} catch (IOException e) {
e.printStackTrace();
}
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
Java:
//Server:
ois = new ObjectInputStream(cSocket.getInputStream());
public void run() {
while(true) {
try {
BufferedImage img=ImageIO.read(ois);
if((img) != null){
imgPanel.setImg(img);
imgPanel.repaint();
img = null;
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Dies funktioniert so auch schon oft, aber eben nicht sehr lange, denn es kommen verschiedenste Exceptions beim Empfangen der Bilder. Hier sind mal einige (Zeile 52 in der Fehlermeldung entspricht Zeile 8 im Serverausschnitt):
Java:
java.lang.IllegalArgumentException: Empty region!
at javax.imageio.ImageReader.computeRegions(Unknown Source)
at com.sun.imageio.plugins.wbmp.WBMPImageReader.read(Unknown Source)
at javax.imageio.ImageIO.read(Unknown Source)
at javax.imageio.ImageIO.read(Unknown Source)
at server.Server.run(Server.java:52)
(sehr häufig)
javax.imageio.IIOException: Invalid JPEG file structure: two SOI markers
at com.sun.imageio.plugins.jpeg.JPEGImageReader.readImageHeader(Native Method)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.readNativeHeader(Unknown Source)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.checkTablesOnly(Unknown Source)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.gotoImage(Unknown Source)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.readHeader(Unknown Source)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.readInternal(Unknown Source)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.read(Unknown Source)
at javax.imageio.ImageIO.read(Unknown Source)
at javax.imageio.ImageIO.read(Unknown Source)
at server.Server.run(Server.java:52)
java.lang.RuntimeException: New BMP version not implemented yet.
at com.sun.imageio.plugins.bmp.BMPImageReader.readHeader(Unknown Source)
at com.sun.imageio.plugins.bmp.BMPImageReader.read(Unknown Source)
at javax.imageio.ImageIO.read(Unknown Source)
at javax.imageio.ImageIO.read(Unknown Source)
at server.Server.run(Server.java:52)
javax.imageio.IIOException: Unsupported JPEG process: SOF type 0xcf
at com.sun.imageio.plugins.jpeg.JPEGImageReader.readImageHeader(Native Method)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.readNativeHeader(Unknown Source)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.checkTablesOnly(Unknown Source)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.gotoImage(Unknown Source)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.readHeader(Unknown Source)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.readInternal(Unknown Source)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.read(Unknown Source)
at javax.imageio.ImageIO.read(Unknown Source)
at javax.imageio.ImageIO.read(Unknown Source)
at server.Server.run(Server.java:52)
javax.imageio.IIOException: Bogus DQT index 15
at com.sun.imageio.plugins.jpeg.JPEGImageReader.readImageHeader(Native Method)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.readNativeHeader(Unknown Source)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.checkTablesOnly(Unknown Source)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.gotoImage(Unknown Source)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.readHeader(Unknown Source)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.readInternal(Unknown Source)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.read(Unknown Source)
at javax.imageio.ImageIO.read(Unknown Source)
at javax.imageio.ImageIO.read(Unknown Source)
at server.Server.run(Server.java:52)
javax.imageio.IIOException: Not a JPEG file: starts with 0xfd 0x6a
at com.sun.imageio.plugins.jpeg.JPEGImageReader.readImageHeader(Native Method)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.readNativeHeader(Unknown Source)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.readHeader(Unknown Source)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.readInternal(Unknown Source)
at com.sun.imageio.plugins.jpeg.JPEGImageReader.read(Unknown Source)
at javax.imageio.ImageIO.read(Unknown Source)
at javax.imageio.ImageIO.read(Unknown Source)
at server.Server.run(Server.java:52)
Ich hoffe das reicht erstmal an Information, damit ihr mir helfen könnt.
Danke, euer stevey