Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1454 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [Java] Tranfert de fichier client/server ????

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Java] Tranfert de fichier client/server ????

n°238101
cezium
Posté le 31-10-2002 à 18:02:36  profilanswer
 

Donc voia c pas très compliqué, je n'arrive pas a tranferer de fichier entre un client ftp et un server ftp
 
pour la fonction "GET fichier" (le client tape cette commande)
 
dans ma classe Clientftp g:
try{
        RandomAccessFile inFile = new RandomAccessFile (System.getProperty("user.dir" )+"/"+s,"rw" ); //on creer le fichier sur le disque dur
        t = new Socket(host,6667); //on creer une nouvelle socket pour le transfert du fichier
        InputStream in2 = t.getInputStream();  
        byte bb[] = new byte[1024];
        int amount;
        while((amount = in2.read(bb)) != -1){
            inFile.write(bb,0,amount);
        }
        in2.close();
        valRetour=0;
        inFile.close();
        t.close();
    }
    catch(IOException e){}  
 
s correspond au nom du fichier que je veux télécharger
 
dans la classe du server g ceci:
 
    server.ps.println("150 Binary data connection" );
    try{
        RandomAccessFile outFile = new RandomAccessFile(System.getProperty("user.home" )+"\\"+s,"r" ); // création du fichier en lecture
        Socket t = new Socket(host,6667); //nouvelle socket pour le transfert du fichier
        OutputStream out2 = t.getOutputStream();  
        byte bb[] = new byte[1024];
        int amount;
        while((amount = outFile.read(bb)) != -1){
            out2.write(bb, 0,amount);
        }
        out2.flush();
        out2.close();
        server.ps.println("226 transfer complete" );
        outFile.close();
        t.close();
    }catch(IOException e){}  
 
 
donc voila les fonction sur mes deux classes
 
le porblèpe est que mon fihcier est bien créer amis il n'y a rien dedans
rien n'a été envoyé de la part du server
 
si kelk'un aurait une idée de mon erreur
 
meric d'avance

mood
Publicité
Posté le 31-10-2002 à 18:02:36  profilanswer
 

n°238275
darklord
You're welcome
Posté le 01-11-2002 à 12:01:26  profilanswer
 

Quelle idée de faire un truc aussi bas niveau alors que des libs open source existe. Voir ma signature et fais une recherche dans la java faq sur FTP. Tu vas tomber sur NetComponents et une implémentation je crois.
 
Plus simple que ca j'ai enore rarement trouvé et ca fonctionne très bien.
 
A+


---------------
Just because you feel good does not make you right
n°238298
bartleby
Posté le 01-11-2002 à 13:17:57  profilanswer
 

Hm, je pense voir d'ou vient le probleme.
 
Sur ton serveur, tu crées le fichier avant de verifier la connexion, il ne contient donc rien.
Ensuite tu attends la connexion est là 2 possibilites :
 
- Il y a un probleme lors de l'etablissement de la connexion et une exception est lancée.
- Il y a un probleme lors de l'envoie des données au niveau de ton serveur.
 
Donc, tout est normal, tu crées ton fichier trop top, et surtout, tu catches tres mal tes exceptions !! Je suis presque sur que tu loupes le vrai probleme.
 
Je te propose de changer ta facon de catcher, mes ca au lieu de "rien" :
 

Code :
  1. System.out.println(e);


 
et de créer ton fichier plus tard sur le serveur:
 

Code :
  1. try{
  2.              Socket t = new Socket(host,6667); //nouvelle socket pour le transfert du fichier  
  3. RandomAccessFile outFile = new RandomAccessFile(System.getProperty("user.home" )+"\\"+s,"r" ); // création du fichier en lecture  
  4.        OutputStream out2 = t.getOutputStream(); 
  5.        byte bb[] = new byte[1024];
  6.        int amount;
  7.        while((amount = outFile.read(bb)) != -1){
  8.            out2.write(bb, 0,amount);
  9.        }
  10.        out2.flush();
  11.        out2.close();
  12.        server.ps.println("226 transfer complete" );
  13.        outFile.close();
  14.        t.close();
  15.    }catch(IOException e){}


 
Personnelement, j'ai testé cela chez moi et ca marchait tres bien:
 
Receiver :
 

Code :
  1. import java.util.*;
  2. import java.net.*;
  3. import java.io.*;
  4. public class Receiver{
  5. public static void main(String[] argv){
  6. try{
  7.        ServerSocket titi = new ServerSocket(6667); //on creer une nouvelle socket pour le transfert du fichier
  8.        Socket t=titi.accept();
  9.        RandomAccessFile inFile = new RandomAccessFile ("new03.jpg","rw" ); //on creer le fichier sur le disque dur
  10.        InputStream in2 = t.getInputStream(); 
  11.        byte bb[] = new byte[1024];
  12.        int amount;
  13.        while((amount = in2.read(bb)) != -1){
  14.            inFile.write(bb,0,amount);
  15.        }
  16.        in2.close();
  17.        inFile.close();
  18.        t.close();
  19.    }
  20.    catch(IOException e){System.out.println(e);} 
  21.  
  22. }
  23. }


 
Sender :
 

Code :
  1. import java.util.*;
  2. import java.net.*;
  3. import java.io.*;
  4. public class Sender{
  5. public static void main(String[] argv){
  6. try{
  7.        RandomAccessFile outFile = new RandomAccessFile("04.jpg","r" ); // création du fichier en lecture
  8.        Socket t = new Socket(argv[0],6667); //nouvelle socket pour le transfert du fichier
  9.        OutputStream out2 = t.getOutputStream(); 
  10.        byte bb[] = new byte[1024];
  11.        int amount;
  12.        while((amount = outFile.read(bb)) != -1){
  13.            out2.write(bb, 0,amount);
  14.        }
  15.        out2.flush();
  16.        out2.close();
  17.        outFile.close();
  18.        t.close();
  19.    }catch(IOException e){System.out.println(e);} 
  20.  
  21.  
  22.   }
  23.  
  24. }


 
Voila, bon courage et tiens nous au courant :) !


Message édité par bartleby le 01-11-2002 à 13:20:40
n°1737721
mTex
Posté le 27-05-2008 à 13:48:26  profilanswer
 

Si ça peut t'aider, j'ai mis en ligne le code source et la documentation d'un serveur multi-thread en java ( connection socket et modification du serveur en RPC) . Tu peux le télécharger à cette adresse : http://www.angelfires-fr.com/progr [...] ittpServer  :hello:

n°1737736
nerisson
Pic-pic
Posté le 27-05-2008 à 14:01:24  profilanswer
 

J'espère qu'il a trouvé la solution 6 ans après...
  [:tonio65]


---------------
Light is right
n°1737748
sircam
I Like Trains
Posté le 27-05-2008 à 14:15:36  profilanswer
 

mlc nine pack
 
[:mlc] [:mlc] [:mlc]
[:mlc] [:mlc] [:mlc]
[:mlc] [:mlc] [:mlc]
 
Déterrage top class :jap:


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [Java] Tranfert de fichier client/server ????

 

Sujets relatifs
[java] comment faire une application en plein ecran ?[JAVA] Help! upload + envoi d'email avec pièce jointe
Lire une partie d'un fichier texte [résolu]problème d'ouverture de fichier [résolu]
[java] il se fou du monde le jbuilder !!!![Delphi]Interface 1 Wire Micro Lan avec Driver Java ! c est possible ?
compresser un fichier sur le serveurtransfert de data d'un fichier csv dans une base de données mysql
[SSL] Certificat client[Java]TCP Client ne marche que partiellement pkoi?[Resolu]
Plus de sujets relatifs à : [Java] Tranfert de fichier client/server ????


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR