[C++] Fenetre Bloquer lors de la recuperation de packets sous WinPcap [Résolu]

Signaler
Messages postés
4
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
9 mars 2007
-
Messages postés
4
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
9 mars 2007
-
Bonjour a tous, je suis débutant amateur en programmation c++ et j'ai actullement un probleme avec WinPcap : Je n'arrive pas a faire de lecture de packets sans que l'application se mette a planter. En effet l'application ne repond plus, laisse le sablier et je suis obliger de la fermer, alors qu'elle est en cours d'execution. J'ai lus la documentation de WinPcap mais les exemples donnés sont dans une commande Dos or mon programme est dans une fenetre windows. Or dans une fenetre windows, je n'est pas reussis a pouvoir lire les packets, et en meme temps ne pas bloquer l'application.

Voici une partit du code que j'ai utiliser apres avoir choisis le numero de l'adapter que je voulait dans inum

<hr />
for(d=alldevs, i=0; i< inum-1 ;d=d->next, i++);
if

((fp = pcap_open_live(d->name,
// name of the device65536,

// portion of the packet to capture. 1,

// promiscuous mode (nonzero means promiscuous)1000,

// read timeouterrbuf

// error buffer)) == NULL)

{

MessageBox(

"Erreur");

}

while

((res = pcap_next_ex( fp, &header, &pkt_data)) >= 0){

if(res == 0)

/* Timeout elapsed */

continue;

/* print pkt timestamp and pkt len */CString Message;

Message.Format(

"%ld:%ld (%ld)\n", header->ts.tv_sec, header->ts.tv_usec, header->len);MessageBox(Message);

printf(

"%ld:%ld (%ld)\n", header->ts.tv_sec, header->ts.tv_usec, header->len);

/* Print the packet */

for (i=1; (i < header->caplen + 1 ) ; i++){

printf(

"%.2x ", pkt_data[i-1]);

if ( (i % LINE_LEN) == 0) printf(
"\n");}

printf(

"\n\n"); }

if(res == -1){

printf(

"Error reading the packets: %s\n", pcap_geterr(fp));}

pcap_close(fp);

<hr />
En faite, c'est un copier coller des exemple dans la documentation que j'ai modifier pour mon application.
J'ai chercher sur le site "WinPcap" mais autrement je sais pas trop ou chercher pour avoir ce genre de renseignement.
Donc si il y a des connaisseur dans WinPcap ou d'autres qui pourrai m'aider, j'aprecirai vraiment .

1 réponse

Messages postés
4
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
9 mars 2007

Pour ce probleme, il fallait cree une fonction en multitache.