2009-09-11 6 views
1

Nous effectuons une connexion FTP via notre applicaion qui est une application JAVA. Nous avons défini le délai d'attente pour la connexion en utilisant la méthode Socket.connect(Adreess,timeout) avant d'appeler la méthode FTPClient.connect().Différence entre Socket.connect (Adreess, timeout) et FTPClient.setSoTimeOu

Lors de la récupération de fichiers à partir du site FTP sous la même connexion, nous n'avons défini aucun délai. Est-il obligatoire d'appeler la méthode FTPClient.setSoTimeOut(timeout) méthode pour définir un délai d'attente individuel pour chaque interaction sous la même connexion ou Socket.connect(Adreess,timeout) méthode définira le délai d'attente pour chaque interaction avec le site FTP sous une connexion?

Je voudrais aussi savoir Quelle est la différence entre ces deux méthodes?

+0

C'est FTPClient d'Apache Commons Net, je présume? – skaffman

Répondre

2

Le délai d'expiration dans Socket.connect() est le délai d'attente de connexion, qui est le temps d'attente avant la fin de la négociation TCP. Ce délai d'attente ne se produit qu'une seule fois par connexion. Est appelé délai d'attente de lecture du socket, qui correspond au délai d'attente de lecture des octets en attente à partir du socket. Cela se produit à chaque socket lu pendant la session TCP.

Il est conseillé de définir la valeur du délai d'expiration afin de ne pas vous fier aux valeurs par défaut du système, qui peuvent varier. Toutefois, le délai d'attente peut ne pas fonctionner parfois lorsque l'appel est bloqué dans le code natif. Par exemple, le délai d'attente de connexion n'est pas respecté si le pare-feu abandonne silencieusement le paquet.

Questions connexes