Connection clientsocket et test

MoveX Messages postés 230 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 16 juillet 2005 - 23 déc. 2004 à 16:50
crapok Messages postés 1 Date d'inscription samedi 15 mai 2004 Statut Membre Dernière intervention 24 janvier 2006 - 24 janv. 2006 à 03:05
je voudrais faire en sorte que lorsque l on appelle la connection du client, a l aide d un bloc try, il controle la connection.
voici mon code

  if Connecte= False then
  try
    ClientSocket1.Host:=EditServeur.Text;
    ClientSocket1.Port:=StrToInt(EditPort.Text);
    ClientSocket1.Open;
    Connecte:= True;
  except
    Connecte:= False;
  end
  else
  begin
    ClientSocket1.Close;
    ButtonConnection.Caption:= 'Déconnection';
    Connecte:= False;
  end;


je pense que j utilise mal le except... connecte est une variable booleenne qui informe de l etat de la connection...
donc, comment faire pour que, lorsque qu on clic pour connecter, il essaie de se connecter et s il y arrive, il met connecte:= true sinon false sans generer de messages d erreur...

17 réponses

jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
23 déc. 2004 à 17:20
Meme avec un try except tu as toujours le message d'erreur en mode debugage. Par contre lance directment ton exe et tu verras que le message ne s'affiche pas là par contre.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
23 déc. 2004 à 17:32
ha bon ? moi je dis "il s'affiche" :) mais ne bloquera pas l'execution du prog par contre...

ds le except je mettrais en plus :
on E:Exception do connecte := false;

me trompe-je ?

N'oubliez pas de cliquer sur Réponse acceptée lorsque ma réponse vous convient ! ;)

-------------------------------------------
http://diabloporc.free.fr : mon site refait ! Delphi power !
0
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
23 déc. 2004 à 17:36
Oui il s'affiche mais uniquement si tu fais un run sous delphi. Par contre si tu lances le prog directement et bien là tu n'auras pas le message à l'écran.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
23 déc. 2004 à 17:39
tu as testé ? moi je pense kil l'aura quand meme

N'oubliez pas de cliquer sur Réponse acceptée lorsque ma réponse vous convient ! ;)

-------------------------------------------
http://diabloporc.free.fr : mon site refait ! Delphi power !
0

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

Posez votre question
MoveX Messages postés 230 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 16 juillet 2005 1
23 déc. 2004 à 18:00
j ai un message erreur asynchrone 10061 lorsque jexecute sans delphi et ce meme avec
on E:Exception do connecte := false;
...

j avais deja fait ca comme je le veux, mais je me souviens plus, donc cest possible...

svp, pourriez vous le faire a votre maniere de facon a n avoir aucun message dexception....
ce serait gentil :D
0
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
23 déc. 2004 à 18:19
donne nous le message d'erreur complet (meme le titre de la fenetre etc), car l'erreur d'exception c peut etre on E: ESocketException etc je c plus exactement, si tu veux faire une capture ne te gene pas

N'oubliez pas de cliquer sur Réponse acceptée lorsque ma réponse vous convient ! ;)

-------------------------------------------
http://diabloporc.free.fr : mon site refait ! Delphi power !
0
MoveX Messages postés 230 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 16 juillet 2005 1
23 déc. 2004 à 18:33
"Le projet project1.exe a provoque une classe d exception ESocketError avec le message 'Erreur socket asynchrone 10061'.
Processus stoppé, utilisez pas a pas ou executer pour continuer"
0
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
23 déc. 2004 à 18:42
ha bah oui suis-je bete ....

remplace donc le :
on E:Exception do connecte := false;
par un
on E:ESocketError do connecte := false;

ça donne koi ?
N'oubliez pas de cliquer sur Réponse acceptée lorsque ma réponse vous convient ! ;)

-------------------------------------------
http://diabloporc.free.fr : mon site refait ! Delphi power !
0
MoveX Messages postés 230 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 16 juillet 2005 1
23 déc. 2004 à 20:25
toujours un message d erreur.... ou plutot le meme message d erreur...
0
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
24 déc. 2004 à 11:45
bon probleme réglé pour moi avec ce code :

  if Connecte= False then
   try
    ClientSocket1.open;
    Connecte := True;
   except
    on E: ESocketError do Connecte := False;
   end
  else
   begin
    ClientSocket1.Close;
    Connecte := False;
   end;


MAIS aussi avec la propriété "ClientType" du ClientSocket1 sur "ctBlocking"
j'espere que ce Bloking ne t'embete pas ! sinon pour moi ça marche.

N'oubliez pas de cliquer sur Réponse acceptée lorsque ma réponse vous convient ! ;)

-------------------------------------------
http://diabloporc.free.fr : mon site refait ! Delphi power !
0
MoveX Messages postés 230 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 16 juillet 2005 1
24 déc. 2004 à 12:04
ahah, je pense que ca un peu m embeter, mais je vais voir, si ca se trouve je peux quand meme utiliser ton code....
merci beaucoup

ceci dit, j avais fait un code sans utiliser le "on: esocketerror do connecte...." qui marchait tres bien....

dommage que j ai fait du menage sur mon hd....
0
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
24 déc. 2004 à 13:07
Hello,

Voici comment je connecte mon client socket moi :

 ClientSocket.Host   := IPServeur;
   ClientSocket.Port   := strtoint(EditPortClient.Text);
   ClientSocket.Active := TRUE;


Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
24 déc. 2004 à 13:17
~.open vaut ~.active:=true;
~.close vaut ~.active:=false;

N'oubliez pas de cliquer sur Réponse acceptée lorsque ma réponse vous convient ! ;)

-------------------------------------------
http://diabloporc.free.fr : mon site refait ! Delphi power !
0
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
24 déc. 2004 à 13:19
LOL bon ben je sors alors.

Merci pour cette précision Julio.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0
MoveX Messages postés 230 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 16 juillet 2005 1
24 déc. 2004 à 17:25
merci beaucoup pour cette precision jmp77 !! maisi bon, s il y a pas de serveur.....

=> ERREUR !!!
0
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
24 déc. 2004 à 17:30
a propos des ~.open et ~.close, je souhaiterais creer une sorte d'alias pour des procedures genre, je pose un TTimer (nommé Timer1)
je veux creer (juste pour MON appli, pa de modif de compo) qqchose comme :
Timer1.Go; > et ça fera Timer1.enabled := true;
et
Timer1.Stop; > et ça fera Timer1.enabled := false;

donc imaginons ke c :

Alias Timer1.go;
begin
Timer1.Enabled := true;
end;

ou

Alias Timer1.go as Timer1.enabled:=true;

voila merci :)

N'oubliez pas de cliquer sur Réponse acceptée lorsque ma réponse vous convient ! ;)

-------------------------------------------
http://diabloporc.free.fr : mon site refait ! Delphi power !
0
crapok Messages postés 1 Date d'inscription samedi 15 mai 2004 Statut Membre Dernière intervention 24 janvier 2006
24 janv. 2006 à 03:05
Dans L'evenement OnError de ton TClientSocket il faut mettre la valeur de ErrorCode à 0 pour que l'API de windows ne déclanche pas d'exception.
0
Rejoignez-nous