PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → ping en boucle et ThreadExecute()
ping en boucle et ThreadExecute()
Débuté par Tchup, 07 déc. 2006 15:39 - 3 réponses
Posté le 07 décembre 2006 - 15:39
Bonjour,

j'aimerais pinguer une plage d'adresses IP et pour chaque IP un message du lancement du ping et le résultat dans un TXT. Pour au final avoir :

ping de 192.168.60.1
192.168.60.1 est joignable
ping de 192.168.60.2
192.168.60.2 ne répond pas
ping de 192.168.60.3
192.168.60.3 est joignable

pour ça j'avais commencer pas faire simplement :

i est un entier
sIP est une chaîne

POUR i=1 A 10
sIP = "192.168.60."+i
TXT_log += RC+"ping "+sIP
SI Ping(sIP) ALORS
TXT_log += RC+sIP+" est joignable"
SINON
TXT_log += RC+sIP+" ne répond pas"
FIN
FIN

sauf que l'affichage ne se fait pas en temps réel. C'est à dire que le log n'est visible qu'une fois TOUS les réponses de ping reçues.

J'ai donc penser utiliser les threads de cette manière :

POUR i=1 A 10
sIP = "192.168.60."+i
TXT_log += RC+"ping "+sIP
ThreadExécute("ping"+i ,threadNormal, pingThread, sIP)
FIN

avec pingThread() :

SI Ping(sIP) ALORS
TXT_log += RC+sIP+" est joignable"
SINON
TXT_log += RC+sIP+" ne répond pas"
FIN

mais cela ne fonctionne pas comme j'espèrais... :/
en fait j'aimerais que les ping se fassent les uns APRES les autres.

Comment faire ?

Merci d'avance
Posté le 07 décembre 2006 - 15:52
Dans son message précédent, Tchup a écrit :

Bonjour,

j'aimerais pinguer une plage d'adresses IP et pour chaque IP un message du
lancement du ping et le résultat dans un TXT. Pour au final avoir :

ping de 192.168.60.1
192.168.60.1 est joignable
ping de 192.168.60.2
192.168.60.2 ne répond pas
ping de 192.168.60.3
192.168.60.3 est joignable

pour ça j'avais commencer pas faire simplement :

i est un entier
sIP est une chaîne

POUR i=1 A 10
sIP = "192.168.60."+i
TXT_log += RC+"ping "+sIP
SI Ping(sIP) ALORS
TXT_log += RC+sIP+" est joignable"
SINON
TXT_log += RC+sIP+" ne répond pas"
FIN
FIN

sauf que l'affichage ne se fait pas en temps réel. C'est à dire que le log
n'est visible qu'une fois TOUS les réponses de ping reçues.

J'ai donc penser utiliser les threads de cette manière :

POUR i=1 A 10
sIP = "192.168.60."+i
TXT_log += RC+"ping "+sIP
ThreadExécute("ping"+i ,threadNormal, pingThread, sIP)
FIN

avec pingThread() :

SI Ping(sIP) ALORS
TXT_log += RC+sIP+" est joignable"
SINON
TXT_log += RC+sIP+" ne répond pas"
FIN

mais cela ne fonctionne pas comme j'espèrais... :/
en fait j'aimerais que les ping se fassent les uns APRES les autres.

Comment faire ?

Merci d'avance


i est un entier
szAdresseIP est une chaîne
// CHP_IP est un champ texte multiligne

POUR i = 1 A 255
szAdresseIP = "192.168.0."+i
SI Ping(szAdresseIP) ALORS
CHP_IP += szAdresseIP + TAB + "-> OK"+RC
SINON
CHP_IP += szAdresseIP + TAB + "-> ECHEC"+RC
FIN
CHP_IP..Curseur = Taille(CHP_IP) + 1
MultitâcheRepeint(FEN_Fenêtre2)
Multitâche(-1)
FIN

--
Cordialement JeAn-PhI
Posté le 07 décembre 2006 - 17:24
merci JeAn-PhI pour ton aide... cependant y juste un p'tit hic :/

lorsque je ping une adresse IP ne répondant pas, le
TXT_log += RC+"ping "+sIP
ne s'affiche qu'une fois la réponse du ping obtenue.

J'ai donc rajouté (que je ne connaissais pas) un :
MultitâcheRepeint(MaFenêtre)
avant ping()

i est un entier
sIP est une chaîne

POUR i=1 A 10
sIP = "192.168.60."+i
TXT_log += RC+"ping "+sIP
MultitâcheRepeint(MaFenêtre)
SI Ping(sIP) ALORS
TXT_log += RC+sIP+" est joignable"
SINON
TXT_log += RC+sIP+" ne répond pas"
FIN
MultitâcheRepeint(MaFenêtre)
Multitâche(-1)
FIN

encore merci !
@+
Posté le 22 mars 2018 - 11:57
Bonjour a tous,
J'aimerai créer une application avec windev qui me permet le ping sur plusieurs adresses ip apres me lister les adresse avec le statut connecté ou non conecté.
quelqu'un aurait une idee s'il vous plais