Por lo que veo, envías infinitamente el archivo hasta que tu conexión con el socket acabe, trata de revisar esa condición, quizás este trabajando mucho sin sentido.
Tambien te recomiendo de poner un sleep con un tiempo razonable después de enviar el archivo. =)
Saludos.
Buenas. Tengo el siguiente problema: Estoy haciendo una aplicación cliente-servidor que permite mostrar un escritorio remoto. El punto es que cuando ejecuto la app el consumo de CPU es muy alto.
Esta es la porcion de codigo que envia la imagen al cliente...
private void procesarConexion() throws IOException {
do {
BufferedImage imagen = robot.createScreenCapture( new Rectangle( width, height ) );
salidaImagen = new ByteArrayOutputStream();
ImageIO.write( imagen, "png", salidaImagen );
byte[] bytesImagen = salidaImagen.toByteArray();
salida.writeObject( bytesImagen );
salida.flush();
} while ( socket.isConnected() );
}
Esta es la porcion de codigo que recibe la imagen y la muestra...
private void procesarConexion() throws IOException {
do {
try {
byte[] bytesImagen = (byte[]) entrada.readObject();
imagenQueEntra = new ByteArrayInputStream( bytesImagen );
BufferedImage bufferedImage = ImageIO.read( imagenQueEntra );
jPanelCentral.getGraphics().drawImage( bufferedImage, 0, 0, jPanelCentral.getWidth(), jPanelCentral.getHeight(), jPanelCentral );
} catch ( ClassNotFoundException e ) {
System.out.println( e.getMessage() );
}
} while ( cliente.isConnected() );
Recibo cualquier sugerencia que me permita mejorar la transferencia .
Muchas gracias por su atencion...