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

 


Dernière réponse
Sujet : [C] Problème client FTP
Tomate fgets c est mal
read c est mieux

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Tomate fgets c est mal
read c est mieux
nicmic Oki, merci du conseil ;)  
J'ai fait ça hier soir tard. Maintenant je me rends compte que c'est pas génial...
Bon je vais séparer tout ça en fonction pour faire plus joli...
Merci de ton aide.
Heu si jamais ça marche toujours pas, je reviens  :pt1cable:
youdontcare ah non y'a un bzero() qui traîne ...
 
conseil : cleane ton code, c'est infâme. utilise un buffer pour lire les commande de l'utilisateur, un buffer d'envoi, un buffer de réception. + (par ex) une jolie fonction pour envoyer une commande avec des paramètres + une fonction qui analyse la chaîne de retour et extrait le code de retour. etc.
youdontcare tu lis l'input de l'utilisateur dans tampon, qui n'est pas initialisé. ok, fgets() te sort une chaine terminée par \0. MAIS tu remplaces ça par \r\n ... sans rajouter le \0. résultat on se demande ce qu'il envoit (que retourne strlen(tamp) ?), et même comment USER xxx peut marcher.
nicmic Exact,
le pb est que lorsque j'envoie la chaine de caractère au sreveur ftp il me renvoie :
530 Please login with USER and PASS
pourtant le user marche bien ( il me renvoie ok, besoin d'un mot de pase maintenant...) Donc, je sais pas trop quoi faire...
Merci
chrisbk sans avoir lu ton code, il serait charmant de dire quel est le pb
nicmic Bonjour,
Voici une partie du code de mon prog. C'est un client qui communique avec un serveur ftp. Ici juste la procédure pour envoyer les commande USER et PASS au serveur.
Aucun problème lors de l'envoie de USER mais pb pour le PASS...
Quelqu'un pourrait-il m'aider.
Merci
 
 
void seLogger (int sock)
{
    char tampon [256];
    char tamp [256];
     
    /* récupère le login de l'utilisateur */
    printf("Entrez votre login \n" );
    /* envoi du login */
    lire(tampon);
    bzero(tamp, sizeof(tamp));
    strcat(tamp, "USER " );
    strcat (tamp, tampon);  
    if ( write ( sock ,tamp , strlen ( tamp )) < strlen ( tamp ))
 {
  perror("Ecriture" );
  exit(6);
 }
    /* récupère la réponse du serveur */
    /* remise à zéro du tampon */
 bzero(tampon, sizeof(tampon));
 if (read ( sock, tampon, sizeof(tampon)) <= 0 )
 {
  perror("lecture" );
  exit(7);
 }
    printf("%s\n", tampon);
 if (( tampon[0] == '3' ) && ( tampon[1] == '3' ) && ( tampon [2] =='1'))
    {
        printf("Voter mot de pass est requis, veuillez le rentrer : \n" );
    }
    /* récupère le pass de l'utilisateur */
    printf("Entrez votre mot de passe \n" );
    /* envoi du mot de pass */
    /* l'utilisateur doit rentrer "PASS motdepasse"*/
    lire(tamp);
    if ( write ( sock ,tamp , strlen ( tamp)) < strlen ( tamp))
 {
  perror("Ecriture" );
  exit(6);
 }
 /* remise à zéro du tampon */
 bzero(tampon, sizeof(tampon));
 if (read ( sock, tampon, sizeof(tampon)) <= 0 )
 {
  perror("lecture" );
  exit(7);
 }
 printf("%s\n","Réponse du serveur" );
 printf("%s\n", tampon);
     
}
/* besoin de finir la chaine par CR LF*/
void lire(char * tampon)
{
    fgets(tampon,256,stdin);
    tampon[strlen(tampon)] = '\r';
    tampon[strlen(tampon)+1] = '\n';
}

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)