Serveur Ftp java

Fermé
ayoubnejm - Modifié par ayoubnejm le 14/02/2013 à 23:12
arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 - 15 févr. 2013 à 12:34
Bonjour,

Je suis entrain d'implémenter un serveur Ftp en java, j'ai réussi a faire pas mal de commandes (user, pass, pwd, cwd ...), mais j'ai un problème lorsque j'essaye de me connecter a mon serveur avec le client filezilla, ce dernier affiche le message suivant :
Commande : PWD
Réponse : 257 "/home/an/Bureau/" is current directory
Commande : TYPE I
Réponse : 502 Command not implemented
Erreur : Impossible de récupérer le contenu du dossier


Voila le code pour la commande pwd :

private void processPWD() {
		
		if(status != StatusConnect.ONLINE)
			new Response(530, " Not logged in", connexion).sendMessage();
		
		else{
		
		if (this.workingDir.charAt(0) != '/') {
			File aFile = new File(this.workingDir);
			try {
				this.workingDir = aFile.getCanonicalPath();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				// e.printStackTrace();
			} 
		}
		
			new Response(257," \"" + this.workingDir +"\" is current directory", connexion).sendMessage();
	  }
		
	}



voila mon code pour la classe Serveur :


package ftp;  

import java.io.IOException;  
import java.net.ServerSocket;  
import java.net.Socket;  
import utils.Response;  
   
public class Serveur{  
   
   
 public static final int PORT = 2505;  
 public static final int MILLISECONDBEFOREDATASOCKET = 2000;  


 public static void main(String args[]) {  
  /*if (args.length != 2) {  
   System.out.println("Server working_directory listened_port");  
   System.exit(1);  
  }*/  
  Serveur server = new Serveur();  
  server.loop("/home/an/Bureau/Master1/CAR/ftp/src/ftp");  
 }  

 private void loop(String workingDir) {  
    
  System.out.println("----- FTP-SERVER---- -----");  
     
  System.out.println("****************************");  
            System.out.println("Server Started...");  
            System.out.println("Waiting for connections...");  
            System.out.println("-");  

  try {  

   ServerSocket ss = new ServerSocket(PORT);   
     
   // Sert plusieurs clients  
   while (true) {     
      
    // création d'une socket quand un demande de connexion a été acceptée  
    Socket c = ss.accept();  
    System.out.println("Connexion etablie");  
    // Envoi de message d'accueil  
    new Response(220, "FTP Server", c).sendMessage();  


    // créer un thread pour traiter la damande du client  
    FtpRequest ftpr = new FtpRequest(c,workingDir);  
    ftpr.start();  
      
   }  

  } catch (IOException e) {  
   throw new RuntimeException(e);  
  }  
    
 }  

   
}  



Vous avez des propositions ??
Merci


A voir également:

6 réponses

arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 291
Modifié par arth le 14/02/2013 à 23:04
Tu indiques que c'est l'implémentation de la commande PWD qui pose souci.

Sauf que là on a que le code pour l'acceptation de la connexion. Donc on ne va pas pouvoir t'aider plus.


Le loup, solitaire et mystérieux.
0
ayoubnejm Messages postés 4 Date d'inscription jeudi 14 février 2013 Statut Membre Dernière intervention 30 avril 2013
14 févr. 2013 à 23:13
c' es modifié !!
0
arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 291
14 févr. 2013 à 23:55
Filezilla répond 530, mais le programme java il sort une exception ou non?
0
ayoubnejm Messages postés 4 Date d'inscription jeudi 14 février 2013 Statut Membre Dernière intervention 30 avril 2013
15 févr. 2013 à 10:12
Non il envoi just un message au client avec le code c tout !!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ayoubnejm Messages postés 4 Date d'inscription jeudi 14 février 2013 Statut Membre Dernière intervention 30 avril 2013
15 févr. 2013 à 10:13
EN FAIT C'EST le serveur qui reponds par le code 530
0
arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 291
Modifié par arth le 15/02/2013 à 12:38
En fait c'est surtout 502 :

Commande : TYPE I
Réponse : 502 Command not implemented

Ce serait pas plutôt parce que cette commande n'est pas implémentée que cela merdoit? Ou plutôt la commande ls ?

Parce que la commande PWD, c'est juste pour connaître le répertoire courant.


Le loup, solitaire et mystérieux.
0