-
FTP limiter l'upload
Bonjour,
Dans mon programme Java, j'utilise un client FTP (javaFtpApi) pour uploader des fichiers.
Le problème c'est que ca prend toute la bande passantes.
Comment faire pour limiter la vitesse d'upload d'un client FTP ?
Ex : Max = 10ko/s
Comme on trouve dans "Azureus".
Je ne trouve aucune méthode dans l'API ou je ne sais pas quelle méthode chercher.
D'avance, merci de vos réponses
-
Je ne connais pas cette librairie, mais si celle si ne gère pas la limite de bande passante, trois solutions s'offrent à toi :
- trouver une librairie qui gère ça ( désolé, j'en connais pas ).
- Modifier celle que tu as pour prendre en charge ta spécification. ( ça doit être la méthode la plus propre ).
- Bidouiller avec les dll ou drivers natifs au système d'exploitation ( déconseillé ).
-
Merci pour ta réponse,
Ta solution 2 me conviens très bien mais aurais-tu une piste pour faire cette méthode, comment gérer le taux de tranfert ?
Merci
-
Lors de la communication avec la socket du serveur, il faut limiter la méthode qui écrit les bytes sur le port.
Renseigne toi sur les sockets java et esseye de trouver ou elles sont utiliser dans le code de ton API Ftp.
Enfin ce n'est que mon humble avis...
-
Une idée simple... tu ré-ecris la méthode d'emission. L'idée est tout simplement de compter la quantité d'octet envoyée. Si elle dépasse le nombre d'octet limite, tu arrètes. Le compteur est remis à zero chaque seconde ( cf timer ) .
-
Merci pour vos réponses.
Je vois plus claire dans ce que je dois faire.
Je vais essayer tout ca durant les jours qui viennent.
-
Encore quelque complement. Il te suffit d'ecrire deux classes : une classe LimitedOutputStream qui va herite de OutputStream dans laquel tu vas mettre en place le systeme de limitation, et tu ecris une classe LimitedSocket qui herite de Socket mais au lieu de renvoyer va mettre un LimitedOutputStream à la place de l'OutputStream.