Metodos para enviar ficheros por trozos en conexiones TCP ========================================================= // Creacion de flujos de datos de salida y de entrada OutputStream flujoSalida=socket.getOutputStream(); DataOutputStream dos=new DataOutputStream(flujoSalida); InputStream flujoEntrada=socket.getInputStream(); DataInputStream dis=new DataInputStream(flujoEntrada); // Lectura de fichero en bloques de 1kb y envio del bloque por el socket FileInputStream fichero=new FileInputStream(String nombreFichero); byte[] trozo=new byte[1024]; int leidos=fichero.read(trozo); // leidos puede valer: // 1024 si ha leido el trozo entero // un numero menor si no quedaban suficientes bytes // un numero negativo si no hay ningun byte while(leidos>-1){ if(leidos<1024) dos.write(trozo,0,leidos); else dos.write(trozo); dos.flush(); leidos=fichero.read(trozo); } // Lectura desde el socket de bloques de 1kb y escritura en disco FileOutputStream fichero=new FileOutputStream(String nombreFichero); byte[] trozo=new byte[1024]; int leidos=dis.read(trozo); while(leidos>-1){ if(leidos<1024) fichero.write(trozo,0,leidos); else fichero.write(trozo); fichero.flush(); leidos=dis.read(trozo); }