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

  FORUM HardWare.fr
  Programmation
  Java

  Probleme envoi client ftp... [resolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme envoi client ftp... [resolu]

n°850404
neg'gwada
rafix 971
Posté le 15-09-2004 à 00:06:48  profilanswer
 

chalut, je suis en train de faire un client ftp en ce moment (le truc que pas mal de debutants commence à faire pour se faire la main en programmation). Seulement j'ai un probleme... j'ai deja tout implementé (mon interface, mes actions...) sauf une seule chose, l'action d'envoi de fichier au serveur (upload), car la j'y arrive pas. est ce quelqu'un peut me dire comment faire? :sweat:  pourtant je suis bien connecté au serveur, j'arrive meme à créé un fichier sur le ftp... [:w3c compliant]  
deuxieme question, j'ai voulu regarder des trucs pour voir comment ca marche un peu le FTP et je suis tombé sur ce lien qui a l'air interessant -> http://www.securite.teamlog.fr/pub [...] index.html
mais je n'est pas compris la vrai diference entre le mode passif et actif (à part pour l'histoire du firewall et de flux entrant) est ce qu'il y a vraiment un interet d'utiliser l'un ou l'autre.
Merci d'avance  :jap:


Message édité par neg'gwada le 17-09-2004 à 00:02:32

---------------
--- WinSplit Revolution ---
mood
Publicité
Posté le 15-09-2004 à 00:06:48  profilanswer
 

n°850567
the real m​oins moins
Posté le 15-09-2004 à 10:37:33  profilanswer
 

tu utilises quoi comme lib pour le ftp ?
c'est quoi ton "probleme" ?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°850594
neg'gwada
rafix 971
Posté le 15-09-2004 à 11:16:02  profilanswer
 

en fait j'utilise une class qui est deja crée, qui gere la creation du socket la connexion, login, download... toutes les methodes qui permettent de gerer un ftp, moi ce que je fais c'est utiliser cette classe pour l'incorporrer a mon programme (pas besoin de creer ce qui existe deja)
je la met sur mon serveur ftp [:ddr555] pour que tu vois
http://reptils.free.fr/forumhardwa [...] ction.java
donc j'ai compris en lisant cette class comment fonction en gros le serveur ftp, (envoi d'une commande du style "PWD" ou "STOR fich.txt" ), donc j'utilise un objet FtpConnection Con=new FtpConnection() pour faire realiser mes taches, cad me connecter, deconnecter, creer un dossier... mais je n'arrive pas a uploader avec sa methode upload :(
j'ai essayé en dure pour voir en faisant executeCommand("STOR"+" fich.txt" ); mais ca ne marche pas non plus... :sweat:


Message édité par neg'gwada le 15-09-2004 à 11:22:19

---------------
--- WinSplit Revolution ---
n°850646
the real m​oins moins
Posté le 15-09-2004 à 12:16:46  profilanswer
 

neg'gwada a écrit :

en fait j'utilise une class qui est deja crée, qui gere la creation du socket la connexion, login, download... toutes les methodes qui permettent de gerer un ftp, moi ce que je fais c'est utiliser cette classe pour l'incorporrer a mon programme (pas besoin de creer ce qui existe deja)


 j'avais bien compris, je te demandais *quelle* librairie tu utilisais.

neg'gwada a écrit :


je la met sur mon serveur ftp [:ddr555] pour que tu vois
http://reptils.free.fr/forumhardwa [...] ction.java


hmm.. connaissais pas..
 

neg'gwada a écrit :


donc j'ai compris en lisant cette class comment fonction en gros le serveur ftp, (envoi d'une commande du style "PWD" ou "STOR fich.txt" ), donc j'utilise un objet FtpConnection Con=new FtpConnection() pour faire realiser mes taches, cad me connecter, deconnecter, creer un dossier... mais je n'arrive pas a uploader avec sa methode upload :(
j'ai essayé en dure pour voir en faisant executeCommand("STOR"+" fich.txt" ); mais ca ne marche pas non plus... :sweat:


euh oui "ça ne marche pas", ça veut dire quoi !?
 
(...  [:pepe le putois] ...)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°850747
neg'gwada
rafix 971
Posté le 15-09-2004 à 14:13:58  profilanswer
 

the real moins moins a écrit :


euh oui "ça ne marche pas", ça veut dire quoi !?
(...  [:pepe le putois] ...)

je ne comprend pas  :??: , tu confirmes que ca ne marche pas ou bien tu veux que j'explicite ce qui ne marche pas?


---------------
--- WinSplit Revolution ---
n°850797
the real m​oins moins
Posté le 15-09-2004 à 15:20:19  profilanswer
 

PUTAIN MAIS FLINGUEZ LE LUI !


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°850836
neg'gwada
rafix 971
Posté le 15-09-2004 à 16:01:48  profilanswer
 

bon laisse tombé, je ne comprend pas ce que tu dis et ca ne sert à rien de t'énerver, si ca te fait chier de me repondre ben tu evites de repondre...


---------------
--- WinSplit Revolution ---
n°850924
the real m​oins moins
Posté le 15-09-2004 à 17:54:28  profilanswer
 

:cry:
 
ça fait 4 posts que je te demande quel est le problème, elle est si complexe que ça la question :cry:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°850931
masklinn
í dag viðrar vel til loftárása
Posté le 15-09-2004 à 18:04:57  profilanswer
 

le monsieur -- avec sa coupe beatles il te demande
 
SAI QUOI QUI FONCTIONNE PAS EXACTEMENT ?
 
Il demande des explications claires et précises, des messages d'erreur, tu vois des trucs du style quoi [:spamafote]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°850957
sircam
I Like Trains
Posté le 15-09-2004 à 18:58:40  profilanswer
 

Si tu veux obtenir une réponse, tu devrais au moins joindre la classe que tu as écrite et qui fait appel à FtpConnection.java, et indiquer clairement ce qui se passe (ou ne se passe pas!) comme real-- et masklinn te le demandent.
 
On saurait au moins de quoi il retourne et on pourrait éventuellement tenter de reproduire le problème (qu'on ne connait tjs pas).


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
mood
Publicité
Posté le 15-09-2004 à 18:58:40  profilanswer
 

n°850958
neg'gwada
rafix 971
Posté le 15-09-2004 à 18:59:57  profilanswer
 

the real moins moins a écrit :

:cry:
 
ça fait 4 posts que je te demande quel est le problème, elle est si complexe que ça la question :cry:

ok désolé alors :whistle: j'avais pas pigé, ce qui se passe exactement... ben rien [:ddr555] il n'y a ni message d'erreur, d'exception, il ne se passe rien... [:spamafote]. la methode Upload  renvoi un booleen j'obtient false (l'envoi n'a pas ete effectué). Comme la journée je ne suis pas chez moi donc je n'ai pas encore peu chercher de nouveau, mais d'ici peu le temps que je m'y remette ce soir je regarde si vraiment il n'y a pas une erreur evidente ou cachée qui m'a echappée. Mais comme mes connaissances sont limitées pour l'instant, car ca fait deux mois que je me suis mis à java donc je n'arrive pas à decortiqué correctement la fonction Upload de la class qui est plus haut en lien.


---------------
--- WinSplit Revolution ---
n°850959
veryfree
Posté le 15-09-2004 à 19:02:05  profilanswer
 

lol

n°850960
neg'gwada
rafix 971
Posté le 15-09-2004 à 19:02:33  profilanswer
 

sircam a écrit :

Si tu veux obtenir une réponse, tu devrais au moins joindre la classe que tu as écrite et qui fait appel à FtpConnection.java, et indiquer clairement ce qui se passe (ou ne se passe pas!) comme real-- et masklinn te le demandent.
 
On saurait au moins de quoi il retourne et on pourrait éventuellement tenter de reproduire le problème (qu'on ne connait tjs pas).

ok je vais vous donner plus tard la partie de mon code qui concerne le Send. Mais pas trop de critiques svp :whistle: sur l'optimisation du code, car je debute...(je code encore comme un cochon)


---------------
--- WinSplit Revolution ---
n°850963
sircam
I Like Trains
Posté le 15-09-2004 à 19:06:08  profilanswer
 

neg'gwada a écrit :

ok je vais vous donner plus tard la partie de mon code qui concerne le Send. Mais pas trop de critiques svp :whistle: sur l'optimisation du code, car je debute...(je code encore comme un cochon)


Alors là ça va ch*er pour ta g***le  :D ! Ici on ne supporte pas le code merdique ! Ca nous irrite les yeux. Tu seras obligé de le corriger point par point pour qu'il soit présentable avant même qu'on envisage d'aborder le fond de la question.
 
J'rigole, mais fais gaffe  [:aline2003]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°851089
neg'gwada
rafix 971
Posté le 15-09-2004 à 21:51:59  profilanswer
 

voici mon code:

Code :
  1. class Send_Thread extends Thread{
  2.    
  3.     public Send_Thread(){               
  4.     }
  5.     public void run(){
  6.         try{
  7.             //c'est un flag pour savoir si mon processus de Send est en vie
  8.             FTP_client.Fenetres.Envois.Fenetre_taches.Bool_reg[7]=true;
  9.            
  10.             while(FTP_client.Fenetres.Envois.Fenetre_taches.Bool_reg[7]){
  11.             //listModel c'est ma liste de paths à envoyer
  12.             if(!(FTP_client.Fenetres.Envois.List_send.listModel.getSize()==0)){
  13. //c'est mon bouton pour ouvrir ma fenetre de list de paths              FTP_client.Fenetres.Envois.Fenetre_taches.bouton_list.setEnabled(false);
  14.                 //test pour voir si la creation de fichier se fait
  15.                 if(Ftp_Thread.con.makeDirectory("test de make" )){
  16.                     System.out.println("fichier créé" );
  17.                 }
  18.                 File f=null;
  19.                 for(int j=0;j<FTP_client.Fenetres.Envois.List_send.listModel.getSize();j++){
  20.                 f=new File(FTP_client.Fenetres.Envois.List_send.listModel.get(j).toString());
  21.                     if(f.isDirectory()){
  22.                         //pas encore codé
  23.                     }
  24.                     if(f.isFile()){
  25. // Ftp_Thread c'est ma thread qui gere le lancement de send et con le socket
  26. Ftp_Thread.con.upload("\",f.getPath()));
  27.                     }
  28.                 }
  29.             }           
  30.             this.sleep(200);
  31.             //on met le flag à faulse pour dire que les envois sont finis
  32.             FTP_client.Fenetres.Envois.Fenetre_taches.Bool_reg[7]=false;
  33.             FTP_client.Fenetres.Envois.Fenetre_taches.Chemin_Local.setEnabled(true);
  34.         }
  35.         }
  36.         catch(Exception exc){
  37.             JOptionPane.showMessageDialog(null,"erreur d'envoi","Exception error",0);
  38.             FTP_client.Fenetres.Envois.Fenetre_taches.Bool_reg[7]=false;
  39.         }
  40.     } 
  41. }


voila j'espere que c'est clair, si vous voyez un truc dites moi, j'utilise le class qui est en lien plus pour les operations liés au serveur et les import ....*; sont tous là.


---------------
--- WinSplit Revolution ---
n°851188
the real m​oins moins
Posté le 15-09-2004 à 22:37:24  profilanswer
 

houlà :sweat:
 
 
... tu voudrais pas faire un prog de test tout simple qui ne fait qu'envoyer ton fichier, en command line et sans gui ?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°851206
neg'gwada
rafix 971
Posté le 15-09-2004 à 22:46:10  profilanswer
 

ouais tu as raison je vais tester, faut dire que le foot m'a empéché de poursuivre [:ddr555]


Message édité par neg'gwada le 15-09-2004 à 22:46:25

---------------
--- WinSplit Revolution ---
n°851250
sircam
I Like Trains
Posté le 15-09-2004 à 22:58:56  profilanswer
 

the real moins moins a écrit :

... tu voudrais pas faire un prog de test tout simple qui ne fait qu'envoyer ton fichier, en command line et sans gui ?


+1  :o  
 
C'est infernal de se taper tout un code qui n'a rien à voir  :sweat:


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°851392
neg'gwada
rafix 971
Posté le 16-09-2004 à 01:03:43  profilanswer
 

bon j'ai fais le prog qui se connect tout simplement puis créé un dossier et puis fait un upload pour enfin se deconnecter  
voici le prog:
la fonction attente fait une attente de x millisecondes

Code :
  1. if(con.connect("ftpperso.free.fr" )){
  2.             System.out.println("la connexion est lancée" );
  3.             //on se log
  4.             attente(200);
  5.             if(con.login("reptils", "*****" )){
  6.                 attente(500); 
  7.                 //creation d'un dossier           
  8.                 con.makeDirectory("ceci est un test" ))
  9.                 attente(500);
  10.                 //upload
  11.                 if(con.uploadFile("\\","E:\\java\\workspace\\test\\Send2FTP\\test d'envoi.txt" )){
  12.                      System.out.println("l'envoi est effectué" );
  13.                      attente(500);
  14.                 }
  15.                 else{ System.out.println("l'envoi a chié..." );}
  16.                 //on se deconnect
  17.                 if(con.logout()){
  18.                      System.out.println("on est bien délogué" );
  19.                      attente(100);
  20.                      con.disconnect();
  21.                 }
  22.                 }
  23.             else{ System.out.println("pas de login" );}
  24.             }           
  25.             else{ System.out.println("la connexion a foiré" );}


 
j'ai mis le flux de donné in et out et alors j'obtiens:

la connexion est lancée
220 Serveur de mise a jour des pages perso de Free.fr version [Aug 24 2004 23:59:27]
user reptils
pass *****
331 Password required for reptils.
230 User reptils logged in.
mkd ceci est un test
257 "/ceci est un test" - Directory successfully created

puis apres plus rien  :sweat:  il s'arrete a la creation du fichier et ne fait pas l'envoi... et le processus est toujours actif, je ne sais pas qu'est ce que fait le programme [:w3c compliant]


Message édité par neg'gwada le 16-09-2004 à 08:42:32

---------------
--- WinSplit Revolution ---
n°851394
the real m​oins moins
Posté le 16-09-2004 à 01:06:32  profilanswer
 

déjà, vire le ' de ton nom de fichier.
.. mais bon. je sais pas.. connais pas ta libraire.
 
essaie d'utilise commons-net, la classe FTPClient, voir si t'as plus de succes.
( http://jakarta.apache.org/commons/net/ )


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°851603
neg'gwada
rafix 971
Posté le 16-09-2004 à 11:53:13  profilanswer
 

et le class FtpBean qui est dispos sur le net vous en pensez quoi?  http://www.geocities.com/SiliconVa [...] n/ftpbean/


---------------
--- WinSplit Revolution ---
n°851643
sircam
I Like Trains
Posté le 16-09-2004 à 12:21:08  profilanswer
 

neg'gwada a écrit :

et le class FtpBean qui est dispos sur le net vous en pensez quoi?  http://www.geocities.com/SiliconVa [...] n/ftpbean/


Dunno, mais celle proposée par real-- (jakarta, anciennement ORO) marche pas mal. Les seuls bugs sur lesquels je suis tombé concernaient le logout.
 
On l'utilise en production sur un système extrêmement important et ça donne satisfaction.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°851655
the real m​oins moins
Posté le 16-09-2004 à 12:43:59  profilanswer
 

sircam >> tu pourrais jeter un oeil sur mon problème dans le topic blablatech@java alors stp? [:cupra]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°851692
sircam
I Like Trains
Posté le 16-09-2004 à 13:27:40  profilanswer
 

the real moins moins a écrit :

sircam >> tu pourrais jeter un oeil sur mon problème dans le topic blablatech@java alors stp? [:cupra]


Il contient 1872 posts...


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°851722
R3g
fonctionnaire certifié ITIL
Posté le 16-09-2004 à 14:16:49  profilanswer
 

c'est à la fin [:itm]


---------------
Au royaume des sourds, les borgnes sont sourds.
n°851754
neg'gwada
rafix 971
Posté le 16-09-2004 à 14:47:37  profilanswer
 

lol  
la classe FTPClient :ouch: je ne vais meme pas utiliser 1% de ce code, il va falloir que je fasse le tri dans ce vaste fichier.class, merci en tout cas pour le lien je vais tester tout ca...


---------------
--- WinSplit Revolution ---
n°851773
the real m​oins moins
Posté le 16-09-2004 à 15:03:56  profilanswer
 

sircam a écrit :

Il contient 1872 posts...

ici [:cupra]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°852280
neg'gwada
rafix 971
Posté le 17-09-2004 à 00:00:19  profilanswer
 

vous savez quoi [:cupra], j'ai resolu mon probleme, j'ai honte.
en fait il ne se passait car pour l'envoi celon si on est en connexion active ou passive ben il envoi differement, et j'avais mal defini le mode d'envoi  [:ddr555] donc il ne faisait ni l'un ni l'autre...
merchi quand meme à vous les gars :jap:. Promis lorsque mo logiciel sera fini je vous le met en partage pour que vous puissiez critiquer  :D


Message édité par neg'gwada le 17-09-2004 à 00:02:08

---------------
--- WinSplit Revolution ---
n°853123
sircam
I Like Trains
Posté le 18-09-2004 à 12:36:32  profilanswer
 


Parce que c'est toi, j'ai jeté un oeil sur le code que tu proposes et j'ai tenté de faire un simple upload sur mon compte free.fr.
 
Résultat tout à fait décevant.
 
Le transfert se réalise correctement, tant avec que sans mode passif, mais le programme bloque et se termine par un 'connection reset by peer'. Après ajout massif de debugging, il apparaît que ça bloque sur completePendingCommand.
 
Quelle déception.  :(  
 
Tu avais quoi plus précisemment avec ton pipe cassé ?


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°853152
the real m​oins moins
Posté le 18-09-2004 à 13:08:11  profilanswer
 

euuuuuuuuuuuuuh, par coeur je sais plus, et j'ai pas la machine sous la main là, je m'y remet apres le weekend... mais en gros ça uploadait +/-80ko (sur les 2-300) et puis ça partait en exception (une io je suppose) avec un message "..broken pipe..." (avant d'arriver au completePendingCommand je crois - à vrai dire je ne sais plus pourquoi j'avais appelé cette methode, sans doute pour essayer vu que ça ne marchait déjà pas).. plus de précision la semaine prochaine.


Message édité par the real moins moins le 18-09-2004 à 13:09:30

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°853153
the real m​oins moins
Posté le 18-09-2004 à 13:08:21  profilanswer
 

(merci^^[:cupra])


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°853353
neg'gwada
rafix 971
Posté le 18-09-2004 à 23:17:52  profilanswer
 

dites, vu que vous faites des truc sur le transfert ftp vous devez savoir ca, lorsqu'on fait un upload ou un download comment on fait pour avoir l'evolution du transfert, pour mettre sur un Jprogressbar? j'ai pensé à faire une requette pendant le transfert de la taille du fichier(toutes les 200 ms), mais je trouve que c'est un peu lourd comme methode. des solutions?


Message édité par neg'gwada le 19-09-2004 à 02:10:02

---------------
--- WinSplit Revolution ---
n°853598
neg'gwada
rafix 971
Posté le 19-09-2004 à 17:51:44  profilanswer
 

j'ai trouvé un truc qui permet de recuperer les infos en utlisant la commande "STAT", seulement je n'arrive pas à l'utiliser car comme le fichier est en train de transmettre le flux de donné, j'ai l'impression que le canal de connexion est OQP... [:spamafote]


---------------
--- WinSplit Revolution ---
n°853599
the real m​oins moins
Posté le 19-09-2004 à 17:54:04  profilanswer
 

ben ça depend de la lib que tu utilises, ça doit en general fonctionner par callback ce genre de truc


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°853630
neg'gwada
rafix 971
Posté le 19-09-2004 à 19:00:45  profilanswer
 

ben en faite je n'ai pas cnangé de lib, j'utilise toujours FtpConnection.java, mais c'est quoi un callback?


---------------
--- WinSplit Revolution ---
n°854361
neg'gwada
rafix 971
Posté le 20-09-2004 à 19:19:41  profilanswer
 

je crois avoir compris comment faire pour avoir l'evolution de l'upload en fait lors de l'up ce qu'il se passe d'apres le code du transfert:

Code :
  1. private void transferData(InputStream in, OutputStream out) throws IOException
  2.     {
  3.         byte b[] = new byte[BLOCK_SIZE];
  4.         int amount;
  5.  // Stock les donnés dans un fichier
  6.         while ((amount = in.read(b)) > 0)
  7.         {
  8.             out.write(b, 0, amount);
  9.         }
  10.     }

où BLOCK_SIZE vaut 4096. donc à priorie on stock des packets d'octets (4096) puis on envois donc dans la boucle while j'ai qu'a mettre un compteur et j'obtient achaque fois combien de paquets j'envois donc -> progressbar


---------------
--- WinSplit Revolution ---
n°854659
the real m​oins moins
Posté le 21-09-2004 à 11:09:54  profilanswer
 

tiens au fait moi j'ai plus mes problemes de pipe cassée. pas compris, mais j'ai eu d'autres problèmes réseau à la maison ces temps-ci, donc ... [:spamafote]
 
 
 
.. par contre commons-net, niveau archi c'est pas la panacée [:mlc] .. pour avoir un listener sur mon upload ftp, j'ai du étendre la classe FTPClient et copier-coller une methode entière pour pouvoir appeler Util.copyStream avec un listener :/


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°854737
neg'gwada
rafix 971
Posté le 21-09-2004 à 12:13:20  profilanswer
 

heu comment dire... à force de faire des tests avec mon logiciel sur mon serveur ftp de free, ben je suis bannis... :'( et ca fait maintenant plus de 24 heures
je ne peux me connecter à aucun ftp meme ceux de mes potes qui sont sur d'autres serveurs.
ca t'est pas encore arrivé the real moins moins?


---------------
--- WinSplit Revolution ---
mood
Publicité
Posté le   profilanswer
 


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

  Probleme envoi client ftp... [resolu]

 

Sujets relatifs
[resolu] probleme de requete avec DAY(date) et MONTH(date)Probleme Mozilla/IE
Problème de requêtePetit probleme en HTML
[c#] Connexion web avec proxy et authentification (resolu)timeout [résolu]
[HTML] probleme de formulaire[PHP] Rechercher des balises dans un fichier [RESOLU]
[C#] Lancer un autre exe depuis un programme C# - Résolu - 
Plus de sujets relatifs à : Probleme envoi client ftp... [resolu]


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