Buenas, el problema que tengo es que estoy intentando enviar un archivo por socket utilizando TCP, pero el problema llega a la hora de leerlo, se queda en el while, pero no de manera infinita, sino que se queda como “dormido” no sé, es muy raro, el código para enviar y recibir el archivo es el siguiente:
Enviar archivo:
byte[] mybytearray = new byte[(int) file.length()]; FileInputStream fis = new FileInputStream(file); BufferedInputStream bis = new BufferedInputStream(fis); bis.read(mybytearray, 0, mybytearray.length); OutputStream os = socket.getOutputStream(); os.write(mybytearray, 0, mybytearray.length); os.flush();
Recibir archivo:
InputStream in = socket.getInputStream(); int bytesRead; OutputStream output = new FileOutputStream(usuario.getId() + "_" + ruta.getTitulo() + ".gpx"); byte[] buffer = new byte[1024]; while ((bytesRead = in.read(buffer)) != -1) { output.write(buffer, 0, bytesRead); } output.close();
La única forma de conseguir que llegue a salir del while cuando lee es cerrando el socket desde el otro extremo, pero no quiero eso, alguna idea? Muchas gracias.