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
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
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();
Merci beaucoup!
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();
Partager