Erreur de socket insoluble !

Résolu
John Dogget Messages postés 384 Date d'inscription vendredi 18 juin 2004 Statut Membre Dernière intervention 7 mai 2009 - 12 juin 2006 à 23:54
reveur23 Messages postés 1 Date d'inscription jeudi 14 septembre 2006 Statut Membre Dernière intervention 15 septembre 2006 - 15 sept. 2006 à 16:08
Bonjour à tous.

Alors voilà, je souhaite récuperer un fichier sur un site à interval régulier, le problème est que je voudrais que le soft ne plante pas lorsque l'ordinateur n'est pas connecté à internet.

Voilà donc ce que j'ai ecrit ...

"function RecupFichier(Site:byte):string;
var
 AccesInternet:TIdHttp;
begin
 AccesInternet:= TIdHttp.Create(nil);
 AccesInternet.ReadTimeout:=5000;
 try
  try
   RecupFichier:=AccesInternet.Get(ListeDesAdresses[SiteDeRecherche]);
  except
   RecupFichier:='Non connecté';
  end;
 finally
  AccesInternet.Free;
 end;
end;"

Ben ça marche pas
Systematiquement, j'ai une erreur de socket quand l'ordi est déconnecté (impossible de trouver l'hôte).

Vous voyez ce qui manque à mon code ?
PS : j'utilise D7 et les compo indy livrés avec

6 réponses

John Dogget Messages postés 384 Date d'inscription vendredi 18 juin 2004 Statut Membre Dernière intervention 7 mai 2009
13 juin 2006 à 20:47
Bon ben ça marche très bien en fait, l'erreur ne venait pas de cette portion de code
3
Utilisateur anonyme
13 juin 2006 à 00:29
Salut,


Désolé mais ton code est incompréhensible comme ca, il manque trop de
choses. Il en va de meme de ta question : Donc tu devrais refomuler
tout ca.


Il faut pas oublier qu'on est pas dans  votre tete
donc c'est sympas de penser aux copains qui cherchent pour vous en
donnant un minimum d'infos pour que l'on puisse comprendre. A force
d'épurer les infos,  on dit des betises en plus. De plus le peu de
code que tu donnes est mal structuré pour pas dire mal coder :


"function RecupFichier(Site:byte):string;
 ET RecupFichier:=AccesInternet.Get(ListeDesAdresses[SiteDeRecherche]);


Tout ca pour la meme fonction ??  .
Autrement dit tu appelles ta fonction dans ta fonction et tu assimiles
la valeur retournée à une autre fonction ? Oua ca c'est de l'acrobatie . Il faut choisir entre le mondial et developper hein ?? les deux en meme temps ca conduit à des trucs chelous .


Je te chambre un peu John mais de ta part ca me surprend un peu que tu fasses un code aussi "cradosse " .C'est ca d'etre devenu une star : on te laisse rien passé


A+
0
Utilisateur anonyme
13 juin 2006 à 00:48
Pour télécharger un fichier avec idHTTP voici un lien :

http://delphi.developpez.com/faq/?page=indy_idhttp#indyidhttpfichier


Rien n'avoir avec ton code . Il est possible d'utilise aussi un TMemoryStream et de récuperer ta page directos via le composant  HTMLLite


A+
0
John Dogget Messages postés 384 Date d'inscription vendredi 18 juin 2004 Statut Membre Dernière intervention 7 mai 2009
13 juin 2006 à 00:48
LOL

C'est coder comme un cochon parce que je ne sais pas trop comment faire alors j'essaye un peu tout ce qui me passe par la tête pour voir si ça marche (et en l'occurence, ça marche ... pas ). Ce code marche très bien quand la connexion est présente, mais pas quand elle ne l'est pas

"Autrement dit tu appelles ta fonction dans ta fonction et tu assimiles la valeur retournée à une autre fonction ?"
Beuu 
En fait, je me sers du nom de la fonction comme valeur de retour, c'est pas un appel.

D'habitude, ce genre de bidouille marche, mais là ...
Vais essayer autre chose .

PS: vraiment sympa ton accueil
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
13 juin 2006 à 00:52
Oh c'était une petite blagounette : lol.


Regarde le lien que je t'ai passé ca va peut etre t'aider


A+ John
0
reveur23 Messages postés 1 Date d'inscription jeudi 14 septembre 2006 Statut Membre Dernière intervention 15 septembre 2006
15 sept. 2006 à 16:08
Je cherche également a intercepter ce type d'erreur, mais pas sur un fichier. Je vais récupérer la souce d'une page Internet et ensuite je la traite. J'ai une fonction qui vérifie si je suis connectée a Internet, donc j'intercepte déjà les erreurs de sockets relié a ca. Par contre, ce que je ne peux pas gérer (encore), c'est si la page, elle, dont je vais chercher la souce, n'est pas disponible. Pour des raisons x, ca arrive.. lenteur du net (sympatico, au quebec, ca rame pas mal) etc...

comment je peux faire pour que ca popup pas les erreurs ? je veux juste qu'il fasse rien du tout au lieu de faire un message d'erreur. Au mieux, je vais faire changer l'icone dans mon systray de couleur pour dire qu'il y a une erreur reseau...

si quelqu'un peut m'aider, merci.
0
Rejoignez-nous