Tranfert de fichier client/server ???? [Java] - Java - Programmation
Marsh Posté le 01-11-2002 à 12:01:26
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+
Marsh Posté le 01-11-2002 à 13:17:57
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 :
|
et de créer ton fichier plus tard sur le serveur:
Code :
|
Personnelement, j'ai testé cela chez moi et ca marchait tres bien:
Receiver :
Code :
|
Sender :
Code :
|
Voila, bon courage et tiens nous au courant !
Marsh Posté le 27-05-2008 à 13:48:26
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
Marsh Posté le 27-05-2008 à 14:01:24
J'espère qu'il a trouvé la solution 6 ans après...
Marsh Posté le 27-05-2008 à 14:15:36
mlc nine pack
Déterrage top class
Marsh Posté le 31-10-2002 à 18:02:36
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