cs_Spawnrider
Messages postés254Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention 9 avril 2007
-
17 avril 2006 à 16:51
cs_Spawnrider
Messages postés254Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention 9 avril 2007
-
23 mars 2007 à 02:00
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_Spawnrider
Messages postés254Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention 9 avril 20071 23 mars 2007 à 02:00
@evo11wrc : Désolé pour ce petit soucis de fichier, je ne sais pas trop ce qu'il a pu se passer.
Cela dit, c'est corrigé ;)
evo11wrc
Messages postés1Date d'inscriptionsamedi 17 juin 2006StatutMembreDernière intervention22 mars 2007 22 mars 2007 à 21:56
votre fichier n'est pas valide
on a besoin de fillezella pour avoir un code valide
attendre votre reponse
merci
cimcim
Messages postés31Date d'inscriptionmardi 11 janvier 2005StatutMembreDernière intervention29 juillet 2010 20 juil. 2006 à 13:16
De rien, c'est normal, et en meme temps, moi ca m'aide !!! ;)
Je complete mon message pour dire qu'il faut également ajouter la relecture des données envoyées dans les fonctions get_file et send_file...
Et après, tout à l'air de rouler !!!
cs_Spawnrider
Messages postés254Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention 9 avril 20071 20 juil. 2006 à 12:31
Je te remercie beaucoup de l'aide et de l'attention que
tu apportes à ce programme :)
Je n'avais pas l'erreur sous Mandrake et CygWin.
Cependant, l'astuce que tu préconnises doit être aussi valable pour (K)ubuntu...:)
cimcim
Messages postés31Date d'inscriptionmardi 11 janvier 2005StatutMembreDernière intervention29 juillet 2010 20 juil. 2006 à 10:58
oki, j'ai trouvé ce qui n'allait pas....
en fait, après avoir fermé la socket, il faut relire ce que le serveur envoie...
donc, après le
"close(current.dat_d);"
il faut ajouter :
"long_chaine = recv(current.com_d,cmd,sizeof(cmd),0);
cmd[long_chaine-2]='\0';
code = atoi(str_sub(cmd,0,2));
printf("%s\n",cmd);"
et à la fin de la transaction, on obtient cette sortie écran :
"226 Transfer complete.
ftp> "
voila... en espérant que ca aide quelqu'un...
CimCim
cimcim
Messages postés31Date d'inscriptionmardi 11 janvier 2005StatutMembreDernière intervention29 juillet 2010 20 juil. 2006 à 09:56
Salut Spawnrider
et merci pour ta source qui m'aide bien... Par contre, j'ai une remarque...
Je suis sous Debian Sarge (moi aussi) et la connexion à un serveur ftp passe sans problème. Après quoi, je peux faire un ls. Mais un seul.... En effet, si je refait un 2eme ls, il n'entre jamais dans le "if(code==227){..." car code vaut 200...
Je pense qu'il doit manquer un cmd_recv quelque part, car une fois la transaction terminée, je recois un code 226 qui n'est pas traité, mais qui fait que j'ai un code de retard par rapport au if...
Voila, si tu as réussi a comprendre ma question, pourrais tu m'aider ?
Merci !!
cs_Spawnrider
Messages postés254Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention 9 avril 20071 15 mai 2006 à 01:11
Bonjour Romaric,
Non je n'ai absolument pas de code pour une partie serveur.
C'est un client FTP simple.
Ta plateforme ne change rien au résultat escompté du fait que tu recompiles tes sources sur ta plateforme.
Si tu as une connection refusée, c'est soit que tu n'est pas connecté à un serveur ou que le serveur te refuse la connection. Cela dit, je n'exclus pas une alerte du type "Connection refusé" sur une commande de type ls ou transfert de fichier sur le canal de données en mode actif.
Mais normalement vu que tu n'as surement pas mis cette option en parametre du client ftp, cela devrait fonctionner correctement.
J'ai testé avec succés par proxy (Janaserver2), Filezilla, ftpserv, u-serv, 1 ftp de ma machine.
J'ai meme recompilé les sources sur Cygwin avec succés...
Si tu as d'autres questions n'hesites pas...
je tiens à préciser que ce ftp est mis en ligne en vue de l'étude des sources, d'une eventuelle amélioration ou tout autre chose du même type et non prévue pour une utilisation normale de transfert de fichiers.
Je ne suis pas responsable des pertes de fichiers dû à un probléme de transfert...
Yohann
rask
Messages postés3Date d'inscriptiondimanche 18 avril 2004StatutMembreDernière intervention14 mai 2006 14 mai 2006 à 15:55
je voudrais ajouter que j'utilise Debian sarge
A +
Romaric
rask
Messages postés3Date d'inscriptiondimanche 18 avril 2004StatutMembreDernière intervention14 mai 2006 14 mai 2006 à 14:43
Bonjour je n'arrive pas à l'exécuter sur ma machine. Il me dit que la connexion a été refusée. Je voudrais aussi savoir s'il n'y a pas un code pour la partie serveur et un autre pour la partie client. Merci de m'aider.
A plus
Romaric
cs_Spawnrider
Messages postés254Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention 9 avril 20071 13 mai 2006 à 23:57
Et bien tu peux télécharger la derniere version ici ou poster sur mon forum sur le site http://www.spawnrider.net.
Bien que la version présente ici soit effectivement la derniere en date :)
Bonne soirée
+++
rask
Messages postés3Date d'inscriptiondimanche 18 avril 2004StatutMembreDernière intervention14 mai 2006 13 mai 2006 à 21:33
Bonsoir je veux que tu m'envoies la dernière version de ton code.
Du courage
romaric
rask9@yahoo.fr
cs_Spawnrider
Messages postés254Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention 9 avril 20071 10 mai 2006 à 02:10
Mise à jour effectuée !
Je n'ai pas utilisé la fonction getpass() [depreciée !]...
;)
cs_Spawnrider
Messages postés254Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention 9 avril 20071 28 avril 2006 à 06:29
Bon apparement pour getpass, c'est obsoléte et déconseillé donc je ne l'utiliserais pas...
Sinon, je viens de finir le mode actif et le mode passif/proxy et ça fonctionne...
J'upload dès que possible ;)
cs_Spawnrider
Messages postés254Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention 9 avril 20071 18 avril 2006 à 01:09
Par contre, pour le mode actif, je dois récuperer mon IP internet, celle fourni par ma passerelle et non celle de ma carte ethenet. Quelqu'un sait-il comment faire ?
J'ai entendu parler de getsockname.....
Merci à vous ;)
cs_Spawnrider
Messages postés254Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention 9 avril 20071 18 avril 2006 à 01:07
Merci à toi, c'est exactement ce dont j'avais besoin...
getpass("");
...
c'est quoi comme fonction ?
C'est une fonction a toi ou une fonction d'une bibliotheque C ANSI?
Merci en tout cas ;)
kinjiro
Messages postés7Date d'inscriptionvendredi 28 février 2003StatutMembreDernière intervention17 avril 2006 17 avril 2006 à 21:52
Salut j'ai regardé tres vite tes sources apres avoir regardé ton screenshot.
Dans le screenshot j'ai remarqué que l'on voyai le pass que tu insérais.
Je te conseil de ne pas utiliser un scanf pour un mot de pass (si une personne passe derriere ton
dos, li l'ecran il connaitra le mot de pass).
Donc dans fonction.c
change:
char pass[255];
printf("Mot de passe pour %s :",user);
scanf("%s",pass);
par:
char *pass;
pass = (char *)malloc(255);
printf("Mot de passe pour %s :",user);
pass = getpass("");
Comme cela lors de la saisie du mot de pass rien ne s'affiche et aucun risque de te faire voler ton
mot de pass. En ce qui concerne le reste des sources je n'ai pas tout regardé.
Si je remarque d'autre petite chose du genre je t'en ferai part.
cs_Spawnrider
Messages postés254Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention 9 avril 20071 17 avril 2006 à 18:10
Juste pour dire que :
Le fichier select.c n'a rien à faire dans l'archive...
cs_Spawnrider
Messages postés254Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention 9 avril 20071 17 avril 2006 à 16:51
Avis aux etudiants de l'IUP de Rouen :
il n'est pas la peine de faire un copier/coller de mon code sans en modifier une grande partie.
23 mars 2007 à 02:00
Cela dit, c'est corrigé ;)
22 mars 2007 à 21:56
on a besoin de fillezella pour avoir un code valide
attendre votre reponse
merci
20 juil. 2006 à 13:16
Je complete mon message pour dire qu'il faut également ajouter la relecture des données envoyées dans les fonctions get_file et send_file...
Et après, tout à l'air de rouler !!!
20 juil. 2006 à 12:31
tu apportes à ce programme :)
Je n'avais pas l'erreur sous Mandrake et CygWin.
Cependant, l'astuce que tu préconnises doit être aussi valable pour (K)ubuntu...:)
20 juil. 2006 à 10:58
en fait, après avoir fermé la socket, il faut relire ce que le serveur envoie...
donc, après le
"close(current.dat_d);"
il faut ajouter :
"long_chaine = recv(current.com_d,cmd,sizeof(cmd),0);
cmd[long_chaine-2]='\0';
code = atoi(str_sub(cmd,0,2));
printf("%s\n",cmd);"
et à la fin de la transaction, on obtient cette sortie écran :
"226 Transfer complete.
ftp> "
voila... en espérant que ca aide quelqu'un...
CimCim
20 juil. 2006 à 09:56
et merci pour ta source qui m'aide bien... Par contre, j'ai une remarque...
Je suis sous Debian Sarge (moi aussi) et la connexion à un serveur ftp passe sans problème. Après quoi, je peux faire un ls. Mais un seul.... En effet, si je refait un 2eme ls, il n'entre jamais dans le "if(code==227){..." car code vaut 200...
Je pense qu'il doit manquer un cmd_recv quelque part, car une fois la transaction terminée, je recois un code 226 qui n'est pas traité, mais qui fait que j'ai un code de retard par rapport au if...
Voila, si tu as réussi a comprendre ma question, pourrais tu m'aider ?
Merci !!
15 mai 2006 à 01:11
Non je n'ai absolument pas de code pour une partie serveur.
C'est un client FTP simple.
Ta plateforme ne change rien au résultat escompté du fait que tu recompiles tes sources sur ta plateforme.
Si tu as une connection refusée, c'est soit que tu n'est pas connecté à un serveur ou que le serveur te refuse la connection. Cela dit, je n'exclus pas une alerte du type "Connection refusé" sur une commande de type ls ou transfert de fichier sur le canal de données en mode actif.
Mais normalement vu que tu n'as surement pas mis cette option en parametre du client ftp, cela devrait fonctionner correctement.
J'ai testé avec succés par proxy (Janaserver2), Filezilla, ftpserv, u-serv, 1 ftp de ma machine.
J'ai meme recompilé les sources sur Cygwin avec succés...
Si tu as d'autres questions n'hesites pas...
je tiens à préciser que ce ftp est mis en ligne en vue de l'étude des sources, d'une eventuelle amélioration ou tout autre chose du même type et non prévue pour une utilisation normale de transfert de fichiers.
Je ne suis pas responsable des pertes de fichiers dû à un probléme de transfert...
Yohann
14 mai 2006 à 15:55
A +
Romaric
14 mai 2006 à 14:43
A plus
Romaric
13 mai 2006 à 23:57
Bien que la version présente ici soit effectivement la derniere en date :)
Bonne soirée
+++
13 mai 2006 à 21:33
Du courage
romaric
rask9@yahoo.fr
10 mai 2006 à 02:10
Je n'ai pas utilisé la fonction getpass() [depreciée !]...
;)
28 avril 2006 à 06:29
Sinon, je viens de finir le mode actif et le mode passif/proxy et ça fonctionne...
J'upload dès que possible ;)
18 avril 2006 à 01:09
aprés une verifion :
man 3 getpass http://www.maconlinux.net/linux-man-pages/fr/getpass.3.html
Je viens de trouver mon bonheur ...
Par contre, pour le mode actif, je dois récuperer mon IP internet, celle fourni par ma passerelle et non celle de ma carte ethenet. Quelqu'un sait-il comment faire ?
J'ai entendu parler de getsockname.....
Merci à vous ;)
18 avril 2006 à 01:07
getpass("");
...
c'est quoi comme fonction ?
C'est une fonction a toi ou une fonction d'une bibliotheque C ANSI?
Merci en tout cas ;)
17 avril 2006 à 21:52
Dans le screenshot j'ai remarqué que l'on voyai le pass que tu insérais.
Je te conseil de ne pas utiliser un scanf pour un mot de pass (si une personne passe derriere ton
dos, li l'ecran il connaitra le mot de pass).
Donc dans fonction.c
change:
char pass[255];
printf("Mot de passe pour %s :",user);
scanf("%s",pass);
par:
char *pass;
pass = (char *)malloc(255);
printf("Mot de passe pour %s :",user);
pass = getpass("");
Comme cela lors de la saisie du mot de pass rien ne s'affiche et aucun risque de te faire voler ton
mot de pass. En ce qui concerne le reste des sources je n'ai pas tout regardé.
Si je remarque d'autre petite chose du genre je t'en ferai part.
17 avril 2006 à 18:10
Le fichier select.c n'a rien à faire dans l'archive...
17 avril 2006 à 16:51
il n'est pas la peine de faire un copier/coller de mon code sans en modifier une grande partie.
Vous pouvez tout de même vous en inspirez...