Salut a tous .
Comment faire pour envoyer des commands a un serveur ftp et resevoir les réponses.
Salut a tous .
Comment faire pour envoyer des commands a un serveur ftp et resevoir les réponses.
Il existe plusieurs composants, dont ceux a télécharger et installer de M Pierrette.
Salut,
pour ma part j'utilise TClientSocket en précisant le port 21 puis l'adresse du serveur FTP, en suite j'ajoute l'événement OnRead, voici un exemple :
En fait en fonction de la valeur dans "Response" tu peux savoir si la commande que tu viens d'envoyer est correcte ou pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 void __fastcall TForm2::Button1Click(TObject *Sender) { ClientSocket1->Address = "adresse_serveur"; ClientSocket1->Active = true; } AnsiString Response; void __fastcall TForm2::ClientSocket1Read(TObject *Sender, TCustomWinSocket *Socket) { Response = Socket->ReceiveText(); //USER if (Response.Pos("220-QTCP") > 0) ClientSocket1->Socket->SendText("USER TOTO\n"); //PASSWORD if (Response.Pos("331 Enter password") > 0) ClientSocket1->Socket->SendText("PASS TITI\n"); //ERREUR PASSWORD if (Response.Pos("530 Log on attempt by user") > 0) { Application->MessageBox("Profil Utilisateur et/ou Mot de Passe incorrect.", "Echec à la connexion."); ClientSocket1->Active = false; } etc....
Oui ça marche tres bien.une petite Remarque,Essaye d'attraper seulement le code de la reponse;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 void __fastcall TForm2::ClientSocket1Read(TObject *Sender, TCustomWinSocket *Socket) { AnsiString Response; Response = Socket->ReceiveText(); //USER if (Response.Pos("220") > 0) ClientSocket1->Socket->SendText("USER TOTO\n"); //PASSWORD if (Response.Pos("331") > 0) ClientSocket1->Socket->SendText("PASS TITI\n"); //ERREUR PASSWORD if (Response.Pos("530") > 0) { Application->MessageBox("Profil Utilisateur et/ou Mot de Passe incorrect.", "Echec à la connexion."); ClientSocket1->Active = false; }
Partager