Bonjour à tous j'ai un probléme sur client serveur.
Quand le Jfilechooser souvre du client j'envoi les fichier normalment, une fois je clique sur annuler les fichier n'arrive plus au serveur et il se bloque voici mon code merci.

Client

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
 if(via.isConnected())
	          {
	            JOptionPane.showMessageDialog(null, "Conectado al servidor: " + IP);
 
 
	            JFileChooser selector = new JFileChooser();
	            selector.setDialogTitle("Selecciona el archivo a enviar");
	            int resultado = selector.showOpenDialog(null);
	            if (resultado == JFileChooser.APPROVE_OPTION)
	            {
	                archivo = selector.getSelectedFile();
	                direccionArchivo = archivo.getPath().toString();
	            }else{
 
	            	via.close();
	            }
 
	            BufferedInputStream bis = new BufferedInputStream(new FileInputStream(direccionArchivo));
	            BufferedOutputStream bos = new BufferedOutputStream(via.getOutputStream());
 
	            //Enviamos el nombre del archivo
	            DataOutputStream dos = new DataOutputStream(via.getOutputStream());
	            dos.writeUTF(archivo.getName());
	            dos.writeUTF(s);
	            dos.writeUTF(s1);
	            dos.writeInt(1);
	           // dos.writeInt(2);
 
 
	            byteArray = new byte[8192];
	            while ((in = bis.read(byteArray)) != -1)
	            {
	                bos.write(byteArray,0,in);
	            }
 
	 bis.close();
	bos.close();
Serveur

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
  try{
             server = new ServerSocket(1234);
 
             while ( true ) {
                 connection = server.accept();
 
                 receivedData = new byte[8192];
                 bis = new BufferedInputStream(connection.getInputStream());
                 DataInputStream dis = new DataInputStream(connection.getInputStream());
 
                 //recibimos el nombre del fichero
                 file = dis.readUTF();
                 file1 = dis.readUTF();
                 file2=dis.readUTF();
                int i=dis.readInt();
                if(i==1)
                { 
 
          	     File directorio = new File("c:\\dossier\\"+file1+"\\"+file2+"\\"); 
                directorio.mkdirs();
                }
                 file = file.substring(file.indexOf('\\')+1,file.length());
 
                 //aqui se escribe el archivo en la ubicacion donde este el Servidor.jar
                 bos = new BufferedOutputStream(new FileOutputStream("C:\\dossier\\"+file1+"\\"+file2+"\\"+ file));
 
                 while ((in = bis.read(receivedData)) != -1){
                     bos.write(receivedData,0,in);
 
 
                 }
 
                 bos.close();
 
                 bis.close();
Merci beaucoup!