Bonjour à tous,
J'ai réalisé un programme en Delphi XE3 qui utilise le composant INDY TidFTP pour échanger avec un serveur FTP FileZilla des plus classique.
J'ai une tâche cyclique qui récupère et dépose des fichiers sur le serveur FTP. Mon programme n'est pas destiné à un utilisateur mais doit tourner "en tâche de fond". J'ai juste une IHM minimaliste pour le débogage, enregistrer les erreurs éventuelles, etc.
Ce programme tourne sur plusieurs site (une vingtaine) et à une fréquence assez élevée (je me connecte toute les 10 sec au serveur) mais les fichiers échangés sont petits.
Globalement cela fonctionne sauf que j'ai deux problèmes bloquants :
1. De temps à autre, j'ai des erreurs qui remonte des composants INDY. Principalement "Can't create socket" mais aussi "Erreur de socket n° 10054 Connexion réinitialisée par l'homologue (peer)". Je n'arrive pas à comprendre pourquoi elles surviennent de façon aléatoires alors que mon serveur est accessible, j'ai la connexion Internet etc. Sans changer les paramètres de connexion, un ou deux tours après cela fonctionne.
2. Non seulement les erreurs ci-dessous apparaissent de façon aléatoires mais elles apparaissent parfois dans des boites de dialogues !. Bien que toutes mes instructions FTP sont protégées par des blocs de typeJe précise que mon programme est bien compilé en mode RELEASE et que mon traitement soit dans un Thread ou un simple Timer ne change rien au problème...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 try FTP.Connect; FTPStatus('FTP '+FTP.Host+ ' connecté'); except on e: EIdException do begin ErrorMsg(MsgTitle + 'Impossible de se connecter au serveur FTP '+FTP.Host +' - '+ e.Message); Exit(False); end; on e: Exception do begin ErrorMsg(MsgTitle + 'Impossible de se connecter au serveur FTP '+FTP.Host +' - '+ e.Message); Exit(False); end; end;
Je ne m'en sort pas et cela devient ingérable merci d'avance pour votre aide.
Partager