Foros del Web » Programación para mayores de 30 ;) » Java »

Envio de archivos por medio de Sockets

Estas en el tema de Envio de archivos por medio de Sockets en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 02/01/2016, 15:05
jesusf606
Invitado
 
Mensajes: n/a
Puntos:
Exclamación Envio de archivos por medio de Sockets

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 original
  1. private void Descarga() {
  2.        
  3.         try {
  4.             oout.writeObject(2);
  5.             oout.writeObject(CurrentFile.getAbsolutePath()+ "/" + JLFiles.getSelectedValue());
  6.            
  7.             byte[] receivedData = new byte[1024];
  8.             int in;
  9.             String file = JLFiles.getSelectedValue();
  10.            
  11.             //Para guardar fichero recibido
  12.             bis = new BufferedInputStream(s.getInputStream());
  13.             bos = new BufferedOutputStream(new FileOutputStream(file));
  14.             while ((in = bis.read(receivedData)) != -1) {
  15.                 bos.write(receivedData,0,in);
  16.             }
  17.             bos.close();
  18.         } catch (Exception e) {
  19.             // TODO Auto-generated catch block
  20.             //e.printStackTrace();
  21.             e.getMessage();
  22.         }
  23.     }

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
  1. private void createConection() {
  2.        
  3.         try {
  4.             server = new ServerSocket(NSer);
  5.             s = server.accept();
  6.            
  7.             System.out.println("Servidor creado!");
  8.             oout = new ObjectOutputStream(s.getOutputStream());
  9.             oin = new ObjectInputStream(s.getInputStream());
  10.            
  11.             int op =(int) oin.readObject();
  12.             String RFile = "";
  13.            
  14.             while(op!=5) {
  15.                
  16.                 switch (op) {
  17.                
  18.                 case 1:
  19.                     RFile = (String) oin.readObject();
  20.                     Recient = new File(RFile);
  21.                     oout.writeObject(Recient);
  22.                     break;
  23.                 case 2:
  24.                                         //Esta es el case que no se si es la que está mal...
  25.                     RFile = (String) oin.readObject();
  26.                     Recient = new File(RFile);
  27.                     bis = new BufferedInputStream(new FileInputStream(Recient));
  28.                     bos = new BufferedOutputStream(s.getOutputStream());
  29.                     //Enviamos el fichero
  30.                     byteArray = new byte[8192];
  31.                     while ((in = bis.read(byteArray)) != -1){
  32.                         bos.write(byteArray,0,in);
  33.                     }
  34.                     bos.close();
  35.                    
  36.                     break;
  37.                 case 4:
  38.                     s = server.accept();
  39.                     oout = new ObjectOutputStream(s.getOutputStream());
  40.                     oin = new ObjectInputStream(s.getInputStream());
  41.                     break;
  42.                 default:
  43.                     break;
  44.                 }
  45.                
  46.                 op =(int) oin.readObject();
  47.             }
  48.            
  49.         } catch (Exception e) {
  50.             // TODO Auto-generated catch block
  51.             NSer++;
  52.             createConection();
  53.             e.printStackTrace();
  54.            
  55.         } finally {
  56.            
  57.             closeConection();
  58.         }
  59.     }

Etiquetas: medio, sockets, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:50.