Socket java client serveur
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:
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:
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!