IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Web & réseau Delphi Discussion :

idftp et connection serveur


Sujet :

Web & réseau Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 25
    Par défaut idftp et connection serveur
    bonjour

    j'ai encore un petit pb avec inftp de indy 10 : il est impossible de se reconnecter à un serveur ftp 2 fois 2 suite.

    c'est a dire : je me connecte une premiere fois
    je fais mon traitement sur le serveur
    je me déconnecte
    je me reconnecte et la j'ai un message d'erreur already connect alors que c'est faux !!!

    que faut il faire encore?
    merci

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    685
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 685
    Par défaut
    Montres le code de déconnexion... FTP exploite deux ports, si la connexion n'est pas terminée proprement il est possible que le canal de données soit toujours ouvert...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 25
    Par défaut
    je fais simplement idftp1.disconnect.

    la déconnexion doit se dérouler normalement car au niveau du serveur, je ne suis plus connecté

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    685
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 685
    Par défaut
    Disconnect appelle la fermture du canal de commandes, alors que le canal de données reste ouvert.

    Testes avec la méthode suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MyFTPClient.KillDataChannel; //ferme le canal de données
    MyFTPClient.Disconnect; //ferme le canal de commandes

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 25
    Par défaut
    j'avais déja essyé mais ça ne changé rien.
    du coup j'ai viré une ligne de code dans la fonction de connexion dans le fichier idtcpclient.pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    procedure TIdTCPClientCustom.Connect;
    begin
      // Do not call Connected here, it will call CheckDisconnect
      EIdAlreadyConnected.IfTrue(Connected, RSAlreadyConnected);
     
      EIdHostRequired.IfTrue(Host='');
      EIdPortRequired.IfTrue(Port=0);
     
      if IOHandler = nil then begin
        IOHandler := MakeImplicitClientHandler;
        IOHandler.OnStatus := OnStatus;
        ManagedIOHandler := True;
      end;
     
      try
        // Bypass GetDestination
        if FDestination <> '' then begin
          IOHandler.Destination := FDestination;
        end;
      ...
    est devenu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    procedure TIdTCPClientCustom.Connect;
    begin
      // Do not call Connected here, it will call CheckDisconnect
     
      EIdHostRequired.IfTrue(Host='');
      EIdPortRequired.IfTrue(Port=0);
     
      if IOHandler = nil then begin
        IOHandler := MakeImplicitClientHandler;
        IOHandler.OnStatus := OnStatus;
        ManagedIOHandler := True;
      end;
     
      try
        // Bypass GetDestination
        if FDestination <> '' then begin
          IOHandler.Destination := FDestination;
        end;
    ...

    j'ai viré le test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      EIdAlreadyConnected.IfTrue(Connected, RSAlreadyConnected);
    et depuis tout va bien !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. connection serveur
    Par trach.sam dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/04/2006, 00h00
  2. [Socket] Connection serveur POP
    Par LordBob dans le forum Réseau
    Réponses: 15
    Dernier message: 20/03/2006, 01h32
  3. Connection Serveur Distant SQL Server 2000
    Par LeNeutrino dans le forum JBuilder
    Réponses: 2
    Dernier message: 16/11/2005, 10h45
  4. Probèmes connections serveurs IRC !
    Par Franck.H dans le forum Réseau
    Réponses: 9
    Dernier message: 22/10/2005, 18h45
  5. Connection Serveur Client
    Par d.w.d dans le forum C++
    Réponses: 16
    Dernier message: 21/02/2005, 11h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo