2011-05-26 4 views
0

Quand le setDataTimeout sur FTPClient (commons.net) est-il appelé? Est-il appelé lorsque la connexion socket est suspendue ou est-il appelé lorsque la valeur de délai d'expiration est atteinte?Quand le setDataTimeout est-il appelé?

Par exemple. si je mets le setDataTimeout à 30 secondes, je ne veux pas que la connexion soit déconnectée après 30 secondes au milieu d'un gros téléchargement.

Répondre

1

Vous devez appeler setDataTimeout avant tout transfert de fichier, puis le délai spécifié sera appliqué aux nouvelles sockets ouvertes pour le transfert de fichiers. Tant que chaque appel read() sur l'InputStream associé au socket peut retourner avant expiration du timeout, vous n'avez pas à vous soucier de la taille du fichier. D'un autre côté, si le délai d'attente s'est écoulé, vous avez détecté une exception et le thread ne bloquera pas indéfiniment.

Questions connexes