Plusieur console pour la commande PING
Résolu
jake93420
Messages postés
74
Statut
Membre
-
jake93420 Messages postés 74 Statut Membre -
jake93420 Messages postés 74 Statut Membre -
Bonjour,
Je doit pinger ma salle de cour, il y a 24 PC, mais il faut que je ping tout les PC en même temps, j'ai réussi a le faire sur un seul PC mais je sait que quand on lance plusieur ping a la suite il lancer les ping les un a la suite des autres. J'aimerais les lancer tous en même temps.
voila mon test :
void FGestionInternet::OnrafraichireClick(wxCommandEvent& event)
{
// for(int i=100;i<113;i++)
// {
int ping=system("ping 192.168.0.104");
// }
}
Je doit pinger ma salle de cour, il y a 24 PC, mais il faut que je ping tout les PC en même temps, j'ai réussi a le faire sur un seul PC mais je sait que quand on lance plusieur ping a la suite il lancer les ping les un a la suite des autres. J'aimerais les lancer tous en même temps.
voila mon test :
void FGestionInternet::OnrafraichireClick(wxCommandEvent& event)
{
// for(int i=100;i<113;i++)
// {
int ping=system("ping 192.168.0.104");
// }
}
A voir également:
- Plusieur console pour la commande PING
- Invite de commande - Guide
- Commande terminal mac - Guide
- Test console steam deck - Guide
- Diskpart commande - Guide
- Commande dism - Guide
8 réponses
essai
void FGestionInternet::OnrafraichireClick(wxCommandEvent& event) { // for(int i=100;i<113;i++) // { int ping=system("ping 192.168.0.104&"); // } }
Il faudrait que le dernier octet soit remplacer par mon "i" du for.
Mais ton astuce ne les lance pas tous en même temps elle les lance tjrs les une après les autres.
merci comme même
Mais ton astuce ne les lance pas tous en même temps elle les lance tjrs les une après les autres.
merci comme même
je re up le sujet avec mon code.
Voila le dernier octet du ping j'aimerais le changer merci!!
int a=0;void *ping=0; void* tache(void*); wxString addr_ping = "192.168.0."; void FGestionInternet::OnrafraichireClick(wxCommandEvent& event) { pthread_t thread[a]; for(int i=0;i<13;i++) { a=100; addr_ping += a; pthread_create(&thread[a],NULL,tache,NULL); a++; testping->SetLabel(addr_ping); } } void* tache(void*) { system("ping 192.168.0.104"); return ping; }
Voila le dernier octet du ping j'aimerais le changer merci!!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut.
C'est pas con les thread.si ça fonctionne.
Il me semble que par défaut les thread sont crées en attente, et qu'il faut modifier les attributs pour les avoir en détacher.
C'est pas con les thread.si ça fonctionne.
int a=0;void *ping=0; void* tache(void*); wxString addr_ping = "192.168.0."; void FGestionInternet::OnrafraichireClick(wxCommandEvent& event) { pthread_t thread[13]; a=100; for(int i=0;i<13;i++) { pthread_create(&thread[i],NULL,tache,(void*)&a); a++; testping->SetLabel(addr_ping); } } void* tache(void* fin) { int n=*((int*)fin); char c[4]; sprintf(c,"%d",n); char cmd[31]; strcpy(cmd,addr_ping); strcat(cmd,c); system(c); return ping;// ??? }ping de 192.168.0.100 à 192.168.0.112
Il me semble que par défaut les thread sont crées en attente, et qu'il faut modifier les attributs pour les avoir en détacher.
Il ne prend pas en compte la concaténation. il laisse le dernier octet vide. je me tape la tête contre le clavier.
probleme resolue:
int a[12],b;void *ping=0;
void* tache(void*);
wxString addr_ping = "192.168.0.";
void FGestionInternet::OnrafraichireClick(wxCommandEvent& event)
{
pthread_t thread[13];
b=101;
for(int i=0;i<13;i++)
{
a[i]=b;
char d[4]="";
sprintf(d,"%d",b);
wxMessageBox(d);
b++;
}
for(int i=0;i<13;i++)
{
pthread_create(&thread[i],NULL,tache,(void*)&a[i]);
}
testping->SetLabel(addr_ping);
}
void* tache(void* fin)
{
int n=*((int*)fin);
char c[4]="";
sprintf(c,"%d",n);
wxMessageBox(_T("Valeur de C : "), wxT(c));
char cmd[36];
strcpy(cmd,addr_ping);
strcat(cmd,c);
wxMessageBox(cmd);
system(c);
int a[12],b;void *ping=0;
void* tache(void*);
wxString addr_ping = "192.168.0.";
void FGestionInternet::OnrafraichireClick(wxCommandEvent& event)
{
pthread_t thread[13];
b=101;
for(int i=0;i<13;i++)
{
a[i]=b;
char d[4]="";
sprintf(d,"%d",b);
wxMessageBox(d);
b++;
}
for(int i=0;i<13;i++)
{
pthread_create(&thread[i],NULL,tache,(void*)&a[i]);
}
testping->SetLabel(addr_ping);
}
void* tache(void* fin)
{
int n=*((int*)fin);
char c[4]="";
sprintf(c,"%d",n);
wxMessageBox(_T("Valeur de C : "), wxT(c));
char cmd[36];
strcpy(cmd,addr_ping);
strcat(cmd,c);
wxMessageBox(cmd);
system(c);
Je dimensionnes a 13 comme il s'arrête a 12 je vais pas jusqu'à qu'il soit égale a 13.
Et oui c'est bien system(cmd) j'ai corriger.
Pour les suivant qu'il se poseront la question j'ai réussi a pinger les 24 PC avec le code suivant :
Et oui c'est bien system(cmd) j'ai corriger.
Pour les suivant qu'il se poseront la question j'ai réussi a pinger les 24 PC avec le code suivant :
int a[12],c[12],b,b2,x,w; int ping1[12]; int ping2[12]; void* tache(void*); void* tache2(void*); wxString addr_ping = "ping 192.168.0."; int pc_s1[13],pc_s2[13]; void FGestionInternet::OnrafraichireClick(wxCommandEvent& event) { pthread_t thread[13]; b=101; //Initialisation des dernier octet du ping b2=201; for(int i=0;i<13;i++) { a[i]=b; // rempli le tableau des dernier octet des ping salle 1 c[i]=b2; // rempli le tableau des dernier octet des ping salle2 b++; b2++; } for(int i=0;i<13;i++) { pthread_create(&thread[i],NULL,tache2,(void*)&c[i]); //création du premier thread pour la salle2 } for(int i=0;i<13;i++) { pthread_create(&thread[i],NULL,tache,(void*)&a[i]); //création du premier thread pour la salle1 } for(int i=0;i<30;i++) { pc_s1[i]=ping1[i]; //je vai essayer de récupérer les valeur du ping pc_s2[i]=ping2[i]; } } void* tache2(void* fin2) { int n2=*((int*)fin2); char c2[4]=""; sprintf(c2,"%d",n2); // wxMessageBox(_T("Valeur de C : "), wxT(c)); char cmd2[36]; strcpy(cmd2,addr_ping); strcat(cmd2,c2); //wxMessageBox(cmd2); n2=n2-100; //wxMessageBox(n2); ping2[n2]=system(cmd2); return 0; } void* tache(void* fin) { int n=*((int*)fin); char c[4]=""; sprintf(c,"%d",n); // wxMessageBox(_T("Valeur de C : "), wxT(c)); char cmd[36]; strcpy(cmd,addr_ping); strcat(cmd,c); // wxMessageBox(cmd); n=n-100; // wxMessageBox(n); ping1[n]=system(cmd); return 0; //system("ping 192.168.0.104"); //return ping; }
Houlà, si tu te récupère une erreur de segmentation tu ne viendras pas pleurer !
et je maintiens, tu fait a[12], tu devrais faire int a[13].
Ensuite, tu crée une fonction tache2 qui n'est pas très utile, de toute façon regarde ce que retourne la fonction "system()", mais à mon avis pas ce que tu veux.
Si ta dernière boucle (le dernier for à 30) ne te génère pas d'erreur, tu auras vraiment beaucoup de chance.
et je maintiens, tu fait a[12], tu devrais faire int a[13].
Ensuite, tu crée une fonction tache2 qui n'est pas très utile, de toute façon regarde ce que retourne la fonction "system()", mais à mon avis pas ce que tu veux.
Si ta dernière boucle (le dernier for à 30) ne te génère pas d'erreur, tu auras vraiment beaucoup de chance.