Pour commencer tu peux lire ça :
http://www.commentcamarche.net/contents/internet/ftp.php3
En terme d'implémentation tu dois ouvrir un socket vers le serveur ftp (port 21). Tu dois écrire dans ce socket des requêtes FTP (des chaînes de caractères ANSI terminées par \r\n) et normalement tu pourras lire dans ce socket les réponses. Lis-ceci :
http://fr.wikipedia.org/wiki/File_Transfer_Protocol
Quand tu seras authentifié, tu recevras après un PASV :
227 Entering Passive Mode (h1,h2,h3,h4,p1,p2)
... qui te permettra de savoir ou récupérer les données (l'IP h1.h2.h3.h4 n'est dans le cas général pas forcément la même que celle du serveur vers lequel tu as envoyé tes commandes et p1,p2 permet de calculer le port vers lequel ouvrir le socket connexion de données).
Pour voir ce qui se passe en pratique, installe un client et un serveur ftp (par exemple filezilla client et filezilla server) et tu pourras étudier l'échange de messages qui se fait entre le client et le serveur. Ensuite, il faudra que tu reproduises le même échange de message avec ton client FTP et ce sera gagné.
Bonne chance