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 original
private void Descarga() { try { oout.writeObject(2); oout.writeObject(CurrentFile.getAbsolutePath()+ "/" + JLFiles.getSelectedValue()); byte[] receivedData = new byte[1024]; int in; //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 original
private void createConection() { try { s = server.accept(); int op =(int) oin.readObject(); while(op!=5) { switch (op) { case 1: oout.writeObject(Recient); break; case 2: //Esta es el case que no se si es la que está mal... //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(); } }