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

Composants VCL Delphi Discussion :

Socket Error Connection timed out


Sujet :

Composants VCL Delphi

  1. #1
    Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Autre

    Informations forums :
    Inscription : Janvier 2013
    Messages : 80
    Points : 49
    Points
    49
    Par défaut Socket Error Connection timed out
    Salut, je suis -toujours- entrain de développer un aspirateur, j'ai essayé le téléchargement avec un serveur local et ça marchait normalement, mais quand j’essaie de télécharger un fichier hébergé sur un serveur distant le téléchargement commence et après quelques instants ça m'affiche cette erreur:
    Nom : Capture.PNG
Affichages : 428
Taille : 5,4 Ko
    Bon, voici mon code:
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    procedure TForm1.getFile;
     var
     pathDest: String;
     fs:TFileStream;
     fileName:String;
     begin
     
     fileName:='file.exe';
     pathDest:='downloads\'+fileName;
     url:=edit1.text;
     fs:=TFileStream.Create(pathDest,fmCreate);
     //http:
     IdHTTP := TIdHTTP.Create(nil);
     IdHTTP.Request.BasicAuthentication := True;
     IdHTTP.Request.Username := 'safa';
     IdHTTP.Request.Password := 'blabla';
     IdHTTP.OnWorkBegin := IdHTTPWorkBegin;
     IdHTTP.OnWorkEnd := IdHTTPWorkEnd;
     IdHTTP.OnWork := IdHTTPWork;
     //SSL:
     IdSSLIOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
     IdSSLIOHandler.OnVerifyPeer:=IdIOHandlerVerifyPeer;
     IdHTTP.IOHandler := IdSSLIOHandler;
     
     IDHttp.Get(url,TfileStream(fs));
     
     
     button2.Enabled:=false;
     end;
    Pourquoi cette erreur, et comment je peux la corriger?

  2. #2
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 786
    Points : 5 918
    Points
    5 918
    Par défaut
    Bonjour,
    Citation Envoyé par SaFa01InF Voir le message
    Pourquoi cette erreur, et comment je peux la corriger?
    La demande de connexion n'a obtenu aucune réponse. Au delà d'un certain temps d'attente, une exception pour réponse hors délai est levée.
    Cela peut s'expliquer par différentes raisons dont une URL incorrecte ou une erreur dans le code (non fourni) des différents gestionnaires d'événements.
    Cependant, votre code dont j'ai expurgé ce qui était inutile ou absent fonctionne :
    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
    21
    22
    23
      fileName := 'http://img3.free.fr/2008/portail/new/im/new/logoGoogle.png';
      pathDest:='C:\Temp\logoGoogle.png';
    //  url:=edit1.text;
      url := fileName;
      fs:=TFileStream.Create(pathDest, fmCreate);
      try
        //http:
        IdHTTP := TIdHTTP.Create(nil);
        IdHTTP.Request.BasicAuthentication := True;
    //    IdHTTP.Request.Username := 'safa';
    //    IdHTTP.Request.Password := 'blabla';
    //    IdHTTP.OnWorkBegin := IdHTTPWorkBegin;
    //    IdHTTP.OnWorkEnd := IdHTTPWorkEnd;
    //    IdHTTP.OnWork := IdHTTPWork;
        //SSL:
        IdSSLIOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
    //    IdSSLIOHandler.OnVerifyPeer:= IdIOHandlerVerifyPeer;
        IdHTTP.IOHandler := IdSSLIOHandler;
     
        IDHttp.Get(url,TfileStream(fs));
      finally
        fs.Free;
      end;

  3. #3
    Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Autre

    Informations forums :
    Inscription : Janvier 2013
    Messages : 80
    Points : 49
    Points
    49
    Par défaut
    La demande de connexion n'a obtenu aucune réponse. Au delà d'un certain temps d'attente, une exception pour réponse hors délai est levée.
    Cela peut s'expliquer par différentes raisons dont une URL incorrecte ou une erreur dans le code (non fourni) des différents gestionnaires d'événements.
    Merci pour votre réponse, j'ai une question qui tourne dans ma tete: s'il y'a un problème dans mon code comment pouvez vous expliquer que le téléchargement se termine parfois? normalement s'il y'a une erreur le téléchargement ne se termine jamais! en plus, l'erreur de connection timed out apparait pendant le téléchargement , s'il y'a un problème de délai d'attente , le téléchargement ne commencerai jamais, n'est-ce-pas?

    PS: j'ai remarqué que les fichiers peu volumineux ont plus de possibilité d'être téléchargé sans aucun problème.

  4. #4
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 786
    Points : 5 918
    Points
    5 918
    Par défaut
    Citation Envoyé par SaFa01InF Voir le message
    Merci pour votre réponse, j'ai une question qui tourne dans ma tete: s'il y'a un problème dans mon code comment pouvez vous expliquer que le téléchargement se termine parfois?
    Un programme peut fonctionner si on évite les cas d'utilisation bogués (un programme qui divise 2 nombres ne plantera que lorsque le nombre diviseur est zéro).

    Citation Envoyé par SaFa01InF Voir le message
    normalement s'il y'a une erreur le téléchargement ne se termine jamais! en plus, l'erreur de connection timed out apparait pendant le téléchargement , s'il y'a un problème de délai d'attente , le téléchargement ne commencerai jamais, n'est-ce-pas?
    Le composant TIdHHTP est lui même dérivé du composant TIdTCPConnection qui s'appuie sur le protocole de contrôle de transmission (Transmission Control Protocol) qui fonctionne en mode connecté. D'autre part, les données sont envoyées par paquet. Il est donc possible qu'au cours du transfert, il y ait une rupture de transmission et que les mécanismes de rattrapage soient inopérants ou trop lents : on a alors un dépassement de délai de transmission et non un dépassement de délai de connexion initiale...

    Citation Envoyé par SaFa01InF Voir le message
    PS: j'ai remarqué que les fichiers peu volumineux ont plus de possibilité d'être téléchargé sans aucun problème.
    Plus le fichier est petit, moins on a de risques d'incidents et de déconnexion, donc plus on a de chances de le transmettre correctement...

  5. #5
    Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Autre

    Informations forums :
    Inscription : Janvier 2013
    Messages : 80
    Points : 49
    Points
    49
    Par défaut
    Ok, j'ai compris, donc dans ce cas l'erreur vient de mon code?, je repose la question parce que je suis sure de mon code, il a bien fonctionné avec le serveur local, certains personnes m'ont dis que ça peut être un problème au niveau de serveur , je veux juste être sure de la source du problème. qu'en dites vous?

  6. #6
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 786
    Points : 5 918
    Points
    5 918
    Par défaut
    Citation Envoyé par SaFa01InF Voir le message
    Ok, j'ai compris, donc dans ce cas l'erreur vient de mon code?, je repose la question parce que je suis sure de mon code, il a bien fonctionné avec le serveur local, certains personnes m'ont dis que ça peut être un problème au niveau de serveur , je veux juste être sure de la source du problème. qu'en dites vous?
    L'erreur peut venir du code (celui des gestionnaires d'événement par exemple), du serveur comme indiqué par "certaines personnes", mais aussi de tout intermédiaire entre votre PC et le serveur (routeur, firewall, proxy...)

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

Discussions similaires

  1. Socket - Internet - Connection timed out: connect
    Par Ivelios dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 11/01/2010, 20h30
  2. Tâche cron et Connection timed out in headers ?
    Par sam_owm dans le forum Apache
    Réponses: 1
    Dernier message: 24/04/2008, 10h00
  3. [IdWhois] Connect Timed Out
    Par xenos dans le forum Delphi
    Réponses: 7
    Dernier message: 06/06/2006, 11h05

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