Paso de ficheros con socket

Morente
19 de Julio del 2005
Hola, intento pasar varios ficheros seguidos desde un servidor socket a un cliente, el problema es el siguiente: si paso un fichero y cierro la conexión, funciona correctamente, en cambio, si dentro de un bucle envío un fichero tras otro, el cliente no sale del bucle de lectura del primer fichero, el código es el siguiente:

Servidor:


OutputStream s1out;
para=false;
InputStream sin;
s1out = so.getOutputStream();
try {
while (!para) { //desde otro sitio se modifica su valor
byte buf[] = new byte[buffer];
sin = new FileInputStream(fichero); //se modifica desde otro sitio
int n = sin.available();
while ( (n = sin.read(buf)) >= 0)
s1out.write(buf, 0, n);
}
so.close();
}
catch ( IOException e ) {
System.out.println( e );
}




Cliente:


Socket s;
InputStream sIn;
OutputStream son

// Abrimos una conexión con breogan en el puerto 4321
try {
s = new Socket( "192.168.1.3",555 );

// Obtenemos un controlador de fichero de entrada del socket y
// leemos esa entrada
//
son = new FileOutputStream( "fichero" );
sIn = s.getInputStream();

while (true) {
while( ( c = sIn.read() ) != -1 )
son.write((c));
///////////////////////////////
////// proceso fichero
////////////////////////////////

} catch( IOException e ) {
System.out.println( e );
}
}
s.close();

Octavio
19 de Julio del 2005
hola que tal tengo el mismo problema que tu, queria saber si ya obtuviste alguna solucion, creo que en si mi problema esta en el manejo del Inputstream. espero me puedas dar alguna referencia de por donde solucionarlo.