Projet de programmation en VC++6.0

Fermé
hosni - 3 avril 2004 à 21:01
turki.hassen Messages postés 1 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 avril 2004 - 4 avril 2004 à 15:20
Bonjour, je suis un etudient et j ai un projet de programmation d un "sniffer password" sur VC++6.0 je veux savoir svp comment fair un processus qui travaille en arriere plan ou bien 2 processus qui travaillent en meme temps.MERCI

3 réponses

La solution est l'exclusion mutuelle par semaphore. Tu peux synchroniser plusieurs taches en parrallele pour calculer plusieurs taches en meme temps. POur cela, dans les options de compilation de Visual C++, tu choisie "debug Multitreaded". Apres dans le code il faut que t'ulise des semaphores. Par contre si tu c'est pas ce que c'est ou comment ca marche, il faudrait que tu regardes des cours de progs systems. POur t'expliquer par l'exemple (qui vaudra mieu qu'une longue explication) :
#include <conio.h>
#include <iostream>
using namespace std;
#include <mx.h>
#include <time.h>

#pragma comment(lib, "mxdbg.lib")

void affch(char *s)
{
while(*s) _putch(*s++);
}

SEMA s1(0,1);
SEMA s2(0,1);

int *tab;
int nb;

int r1 = 0;
int r2 = 0;


int TACHE P1(int c)
{
for(int i = 0;i < nb/2; i++)
{

r1 += tab[i];

}

s1.signal();

return 0;
}



int TACHE P2(int c)
{
for(int i = nb-1; i >= nb/2; i--)
{
r2 += tab[i];
}

s2.signal();

return 0;
}




int main()
{
char rep = 'o';

while (rep == 'o')
{
cout << "Entrer le nombre de postes ( entre 1 et 900000 ) : ";
cin >> nb;

tab = new int [nb];

srand(time(NULL));

for(int i = 0; i < nb; i++)
tab[i] = rand();

tache(1,P1);
tache(2,P2);

lance(1);
lance(2);

if(nb < 201)
{
cout << "Contenu du vecteur :\n";
for(int j=0; j < nb; j++)
{
if((j%9) == 0) cout << "\n";
cout << tab[j] << "\t";
}
}

s1.wait();
s2.wait();

int resul = r1 + r2;

cout << "\n\n\n" << r1 << " + " << r2 << " = " << resul << endl;


cout << "Recommencer (o/n) ? ";
cin >> rep;

tuetache(1);
tuetache(2);

}

return 0;
}
0
POur ce prog, j'ai utiliser comme tu peux le voir une bibliotheque qui s'appelle MX et qui gere les semaphores.
Ce programme calcule la somme des données d'un tableau. La tache 1 parcours de gauche a droite, et la 2 inversement.
Une derniere chose, la syncro de plusieurs tache n'a d'interret que si tu possedes 2 proces ou un P4 Multithreaded !!!!
0
je serais interresser de voir le source demon prog. Bonne continuation...
0
turki.hassen Messages postés 1 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 avril 2004
4 avril 2004 à 15:20
Merci pour votre intervention.
0