A voir également:
- Statuts d'un serveur distant en PHP
- Changer serveur dns - Guide
- Easy php - Télécharger - Divers Web & Internet
- Serveur pop - Guide
- Serveur dns gratuit - Guide
- Serveur dns orange - Accueil - Guide box et connexion Internet
3 réponses
perso je ferai un programme em C++, C#, python... ou ce que tu veux...
et au lieu de tester un a un tes serveurs, tu lance la patate de thread en meme temps.. bon, tu pourra pas en ouvrir 90 000 en meme temps, mais deja tu peux reduire tes temps de test....
je sais pas si il est posssible de faire du multithreading en PHP ... ce serait le plus simple pour toi ...
et au lieu de tester un a un tes serveurs, tu lance la patate de thread en meme temps.. bon, tu pourra pas en ouvrir 90 000 en meme temps, mais deja tu peux reduire tes temps de test....
je sais pas si il est posssible de faire du multithreading en PHP ... ce serait le plus simple pour toi ...
Bonjour Nabla,
Merci pour tes réponses.
J'avais effectivement déjà trouvé des post qui indiquaient qu'on pouvait faire des simulation de mutithread en php, mais après renseignements, on m'avait dit que cela bouffe beaucoup de ressources et que c'est loin d'être une bonne méthode.
Sinon, je vais me mettre à apprendre un autre langage...Peut etre python, j en ai souvent entendu parler dans mes recherches pour faire du multithread...
Merci encore
Merci pour tes réponses.
J'avais effectivement déjà trouvé des post qui indiquaient qu'on pouvait faire des simulation de mutithread en php, mais après renseignements, on m'avait dit que cela bouffe beaucoup de ressources et que c'est loin d'être une bonne méthode.
Sinon, je vais me mettre à apprendre un autre langage...Peut etre python, j en ai souvent entendu parler dans mes recherches pour faire du multithread...
Merci encore
en c++ avec les MFC (microsoft foundation class), pas top mais bon, pas trop chiant a utiliser:
#include "afxsock.h"
#include "afxmt.h"
#define PORT 80
CMutex mutex; //declaration du mutex
UINT travail(LPVOID sock);
void main(){ //thread principal (écoute)
AfxSocketInit(); //initialisation des sockets
//recuperrer la liste des serveurs
for (int a = 0; a<100; a++) //on lance une bonne centaine de thread
AfxBeginThread(travail,(LPVOID)&liste);//lance la fonction travail comme nouveau thread,
}
}
UINT travail(LPVOID liste){ //thread de travail
CSocket *Wsocket=new CSocket; //socket de travail
WSocket->create();
int ip;
mutex.Lock();//mutex pour eviter les conficts d acces au ressources....
//lire le prochain element de la liste, et le mettre dans la variable ip;
mutex.Unlock();//si tu fait pas ca, tu ne testera jamais plus que la première ligne !!!!
WSocket->Connect(ip,80);
//ici il faudra gerer soit un timeout, soit l erreur renvoyee par la socket...
}
voila... pas testé, mais c est l idée.. il faut ajouter la gestiond de ta base de données...
pour les autres languages, desolé, je ne peux pas vraiement t aider
#include "afxsock.h"
#include "afxmt.h"
#define PORT 80
CMutex mutex; //declaration du mutex
UINT travail(LPVOID sock);
void main(){ //thread principal (écoute)
AfxSocketInit(); //initialisation des sockets
//recuperrer la liste des serveurs
for (int a = 0; a<100; a++) //on lance une bonne centaine de thread
AfxBeginThread(travail,(LPVOID)&liste);//lance la fonction travail comme nouveau thread,
}
}
UINT travail(LPVOID liste){ //thread de travail
CSocket *Wsocket=new CSocket; //socket de travail
WSocket->create();
int ip;
mutex.Lock();//mutex pour eviter les conficts d acces au ressources....
//lire le prochain element de la liste, et le mettre dans la variable ip;
mutex.Unlock();//si tu fait pas ca, tu ne testera jamais plus que la première ligne !!!!
WSocket->Connect(ip,80);
//ici il faudra gerer soit un timeout, soit l erreur renvoyee par la socket...
}
voila... pas testé, mais c est l idée.. il faut ajouter la gestiond de ta base de données...
pour les autres languages, desolé, je ne peux pas vraiement t aider