Buenas, Tengo un error que me ha estado carcomiendo por días y no sé que está mal, seguramente es una tontería...
Lo que intento hacer es un visor de archivos remoto, corre muy bien y todo, el problema es que al "descargar" un archivo por medio del cliente, sólo te deja hacer una vez esa acción y después deja de recibir datos el servidor y me bota al cliente. Gracias de antemano!
Este es el codigo de la ventana cliente la cual manda un entero y después la ruta a descagar...
Código Java:
Ver originalprivate void Descarga() {
try {
oout.writeObject(2);
oout.writeObject(CurrentFile.getAbsolutePath()+ "/" + JLFiles.getSelectedValue());
byte[] receivedData = new byte[1024];
int in;
String file
= JLFiles.
getSelectedValue();
//Para guardar fichero recibido
while ((in = bis.read(receivedData)) != -1) {
bos.write(receivedData,0,in);
}
bos.close();
// TODO Auto-generated catch block
//e.printStackTrace();
e.getMessage();
}
}
Este es el código del servidor, recordemos que el cliente le envía un entero el cual por medio del switch selecciona la opción.
Código Java:
Ver originalprivate void createConection() {
try {
s = server.accept();
System.
out.
println("Servidor creado!");
int op =(int) oin.readObject();
while(op!=5) {
switch (op) {
case 1:
RFile
= (String) oin.
readObject(); Recient
= new File(RFile
); oout.writeObject(Recient);
break;
case 2:
//Esta es el case que no se si es la que está mal...
RFile
= (String) oin.
readObject(); Recient
= new File(RFile
); //Enviamos el fichero
byteArray = new byte[8192];
while ((in = bis.read(byteArray)) != -1){
bos.write(byteArray,0,in);
}
bos.close();
break;
case 4:
s = server.accept();
break;
default:
break;
}
op =(int) oin.readObject();
}
// TODO Auto-generated catch block
NSer++;
createConection();
e.printStackTrace();
} finally {
closeConection();
}
}