Bonjour,
je dois faire une projet en Perl qui est un simple client FTP en perl. Je ne peux pas utiliser le module Net:FTP et je dois donc faire tout "manuellement".
J'ai presque fini mais je me heurte cependant à un problème qui peut etre très génant qui concerne la gestion messages du type 220 provenant du serveur.
Prenons le cas de la connexion. Je prépare le socket, je me connecte et apres je dois m'authentifier. Je précise que je souhaite afficher tous les messages du serveur.
Avant l'authentification, le serveur peut envoyer un message de bienvenue et je dois donc l'afficher.
Comme vous pouvez le voir, je fais DEUX fois une lecture dans le socket apres la connexion car mon serveur FTP envoie DEUX lignes de bienvenue :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 connect(VERS_SERVEUR, $destination) || die("Connect: $!"); autoflush VERS_SERVEUR, 1; $ligne = <VERS_SERVEUR>; afficher_reponse($ligne); $ligne = <VERS_SERVEUR>; afficher_reponse($ligne); print "login : "; $ident = <STDIN>; ... le sute n'est pas importante
Le problème réside dans le fait que si je me connecte sur un autre serveur qui a UNE ou 10 0000 lignes de bienvenue, mon programme ne marche plus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 (000002) 11/01/2006 16:58:25 - (not logged in) (192.168.1.11) > 220-BulletProof FTP Server ready ... (000002) 11/01/2006 16:58:25 - (not logged in) (192.168.1.11) > 220 Welcome to Tex's Personal Server
De quelle façon je peux gérer ces messages en provenance du serveur ?
merci.
Partager