Plusieur console pour la commande PING
Résolu/Fermé
jake93420
Messages postés
72
Date d'inscription
mercredi 25 mai 2011
Statut
Membre
Dernière intervention
5 juin 2013
-
6 déc. 2011 à 14:38
jake93420 Messages postés 72 Date d'inscription mercredi 25 mai 2011 Statut Membre Dernière intervention 5 juin 2013 - 13 déc. 2011 à 12:21
jake93420 Messages postés 72 Date d'inscription mercredi 25 mai 2011 Statut Membre Dernière intervention 5 juin 2013 - 13 déc. 2011 à 12:21
A voir également:
- Plusieur console pour la commande PING
- Invite de commande - Guide
- Commande terminal mac - Guide
- Console action - Accueil - Jeu vidéo
- Realtek audio console ✓ - Forum Windows
- Port ping - Forum Windows
8 réponses
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
6 déc. 2011 à 14:46
6 déc. 2011 à 14:46
essai
void FGestionInternet::OnrafraichireClick(wxCommandEvent& event) { // for(int i=100;i<113;i++) // { int ping=system("ping 192.168.0.104&"); // } }
jake93420
Messages postés
72
Date d'inscription
mercredi 25 mai 2011
Statut
Membre
Dernière intervention
5 juin 2013
3
6 déc. 2011 à 14:57
6 déc. 2011 à 14:57
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
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
6 déc. 2011 à 15:11
6 déc. 2011 à 15:11
tu es sous windows ? en effet, c'est un peu plus compliqué alors.
jake93420
Messages postés
72
Date d'inscription
mercredi 25 mai 2011
Statut
Membre
Dernière intervention
5 juin 2013
3
6 déc. 2011 à 15:14
6 déc. 2011 à 15:14
oui je suis sous windows. la loose
jake93420
Messages postés
72
Date d'inscription
mercredi 25 mai 2011
Statut
Membre
Dernière intervention
5 juin 2013
3
13 déc. 2011 à 09:15
13 déc. 2011 à 09:15
re-up le sujet tjrs bloquer
jake93420
Messages postés
72
Date d'inscription
mercredi 25 mai 2011
Statut
Membre
Dernière intervention
5 juin 2013
3
13 déc. 2011 à 09:40
13 déc. 2011 à 09:40
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!!
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
13 déc. 2011 à 09:57
13 déc. 2011 à 09:57
addr_ping += a;
peut tu vraiment ajouter un entier à un wxString ??? Pas en C en tout cas, éventuellement en C++.
peut tu vraiment ajouter un entier à un wxString ??? Pas en C en tout cas, éventuellement en C++.
jake93420
Messages postés
72
Date d'inscription
mercredi 25 mai 2011
Statut
Membre
Dernière intervention
5 juin 2013
3
13 déc. 2011 à 10:06
13 déc. 2011 à 10:06
je suis en c++, wxWidget impose c beaucoup mieux
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
13 déc. 2011 à 09:55
13 déc. 2011 à 09:55
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.
jake93420
Messages postés
72
Date d'inscription
mercredi 25 mai 2011
Statut
Membre
Dernière intervention
5 juin 2013
3
13 déc. 2011 à 10:13
13 déc. 2011 à 10:13
Il ne prend pas en compte la concaténation. il laisse le dernier octet vide. je me tape la tête contre le clavier.
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
13 déc. 2011 à 10:27
13 déc. 2011 à 10:27
Si tu fais du C++, tu n'est pas obliger de passer par strcpy strcat etc. fait avec des objets, c'est plus facile. Je ne connais pas wx donc je ne peut pas t'aider.
Sinon, je ne comprend pas exactement ton problème de concaténation.
Sinon, je ne comprend pas exactement ton problème de concaténation.
jake93420
Messages postés
72
Date d'inscription
mercredi 25 mai 2011
Statut
Membre
Dernière intervention
5 juin 2013
3
13 déc. 2011 à 10:58
13 déc. 2011 à 10:58
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);
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
13 déc. 2011 à 11:13
13 déc. 2011 à 11:13
C'est pas plutôt system(cmd) qu'il faut mettre ? Erreur de ma part.
Pourquoi dimensionnes tu a à 12 et non à 13 ? Tu as un risque d'erreur.
Pourquoi dimensionnes tu a à 12 et non à 13 ? Tu as un risque d'erreur.
jake93420
Messages postés
72
Date d'inscription
mercredi 25 mai 2011
Statut
Membre
Dernière intervention
5 juin 2013
3
13 déc. 2011 à 12:09
13 déc. 2011 à 12:09
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; }
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
13 déc. 2011 à 12:16
13 déc. 2011 à 12:16
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.
jake93420
Messages postés
72
Date d'inscription
mercredi 25 mai 2011
Statut
Membre
Dernière intervention
5 juin 2013
3
13 déc. 2011 à 12:21
13 déc. 2011 à 12:21
la dernier boucle c'est un test elle a gicler la.