Our Country Sites: Argentina|Brazil|Chile|Mexico|Peru

Envio de Imagenes desde J2ME a Servidor HTTP

Versão para impressãoVersão para impressãoSend by emailSend by email

Estoy intentando el envio de imagenes desde una app J2ME, lo cual me esta dando problemas de performance, toma mucho tiempo el envio...

De hecho ejecute desde un emulador el ejemplo de sonnyericson, tal cual, con la misma imagen, y el resultado fue el mismo, la instruccion flush tomo 480 segs en procesarse. Esto es normal? asi funciona?

Otra pregunta, si quisiera tener un proceso en el cual voy a enviar datos e imagenes, se recomienda hacerlo por separado?, es decir, primero los datos y luego dejar en un thread ejecutando el envio de imagenes??

saludos
cmolina

Complementando la ultima

Complementando la ultima pregunta. Tambien se estila hacer el envio de datos en linea, como registro de cabecera, y el envio de imagenes hacerlo como envio de pendientes. La idea es no acumular demasiadas imagenes, por lo que cada cierto tiempo tendria que enviarse las imagenes para que no se llene la memoria, y que no se acumulen demasiadas imagenes para enviar de un solo tiron. Otra opcion es guardarlo en una tarjeta de memoria externa como una SD micro y actualizarlo despues.

Re: Envio de Imagenes desde J2ME a Servidor HTTP

Hola cmolina.
Tienes que tomar en cuenta tambien el tamaño de la imagen que estas transmitiendo mediante las funciones HTTP de J2ME, ademas de la velocidad de transmision y el ancho de banda que tiene tu equipo celular.

Una alternativa seria:
- Pasar tu imagen a un arreglo de bytes (byte[]).
- Comprimir tu arreglo de bytes mediante una funcion ZIP.

public static byte[] compress(byte[] data)
{   ByteArrayOutputStream baos = new ByteArrayOutputStream();
       
    try
    {   GZIPOutputStream gzipStream = new GZIPOutputStream( baos,GZIPOutputStream.COMPRESSION_BEST,GZIPOutputStream.MAX_LOG2_WINDOW_LENGTH );
        gzipStream.write( data );
        gzipStream.close();
    }
    catch(IOException ioe)
    {
        return null;
    }

    return baos.toByteArray();
}

- Transmitir tu imagen mediante un hilo (la mejor opcion para que no se retrase el envio de la informacion)
- En tu servidor recuperar el arreglo de bytes ZIPeado y descomprimirlo.
- La imagen se recupera con el arreglo de Bytes orginal y se da incio a la logica del negocio.

Gerardo Chung
Desarrollo Blackberry Senior
Nextel del Peru S.A.

Lo que tendrias que hacer ai

Lo que tendrias que hacer ai es ver que jsr soporta tu equipo si soporte el jsr 75 podrias transferir archivos via ftp, asia un servidor ftp, incluso podrias abrir dos thread diferentes para conectarse al mismo servidor ftp y mandar los archivos muy distinto!
Cualquier cosa mi correo : luiggicastagnino@gmail.com
Cualquier otra cosa me dics! Saludos desd Piura

Programador Escuela Tecnologica Superior de Piura