M
microtux
Gast
Hallo!
Ich möchte ein Programm entwickeln, welches den Bildschirminhalt eines PCs über das Netzwerk zu einem anderen streamt. Dazu verwende ich java.awt.Robot.createScreenCapture(), bekomme damit ein BufferedImage und will dieses mit ImageIO.write() an einen OutputStream schicken. Auf der Gegenseite läuft ein Programm, welches dieses BufferedImage ausliest und ein JPanel auf einem JFrame immer neu zeichnet.
Nun zu meinem Problem: Beide Seiten - Viewer und Server - arbeiten mit Threads -> Server schickt laufen Bilder, Viewer empfängt andauernd Bilder. Nur sind diese nicht synchron, was bedeutet, dass der Server nach einiger Zeit "schneller" wird und mehr Bilder sendet, als der Viewer empfangen kann. Wie kann ich nun diese Threads synchronisieren? Muss ich extra einen Rückkanal einführen, der nach jedem empfangenen Image ein OK zurückschickt, oder geht das auch einfacher?
Vielen Dank schon einmal,
mfG microtux
Ich möchte ein Programm entwickeln, welches den Bildschirminhalt eines PCs über das Netzwerk zu einem anderen streamt. Dazu verwende ich java.awt.Robot.createScreenCapture(), bekomme damit ein BufferedImage und will dieses mit ImageIO.write() an einen OutputStream schicken. Auf der Gegenseite läuft ein Programm, welches dieses BufferedImage ausliest und ein JPanel auf einem JFrame immer neu zeichnet.
Nun zu meinem Problem: Beide Seiten - Viewer und Server - arbeiten mit Threads -> Server schickt laufen Bilder, Viewer empfängt andauernd Bilder. Nur sind diese nicht synchron, was bedeutet, dass der Server nach einiger Zeit "schneller" wird und mehr Bilder sendet, als der Viewer empfangen kann. Wie kann ich nun diese Threads synchronisieren? Muss ich extra einen Rückkanal einführen, der nach jedem empfangenen Image ein OK zurückschickt, oder geht das auch einfacher?
Vielen Dank schon einmal,
mfG microtux