Bonjour,
J'utilise winpcap qui utilise un while pour la capture de paquets, j'ai donc mis un qApp->processEvents(); pour eviter que l'application se bloque,
je voulais savoir si je pouvait le mettre dans un thread, mais la question que je me pose,
si je le met dans un thread je vais avoir le meme probleme, l'application se bloquera je suppose?
Comment faire pour que l'application ne se bloque pas ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 while ((res = pcap_next_ex(adhandle, &header, &pkt_data)) >= 0){ qApp->processEvents(); if (CaptureStop) break; if (res == 0) // Timeout elapsed continue; ++nPacket; if (header->caplen == 0) break; dataLength += header->caplen; if (res == -1){ print_error(QString("Error reading the packets: %1 ").arg(pcap_geterr(adhandle))); break; } print_status1(QString("%1 Packets Captured | Length: %2 | Total Length: %3 ").arg(QString::number(nPacket)).arg(QString::number(header->caplen)).arg(QString::number(dataLength))); packet_handler(NULL, header, pkt_data, (unsigned char *)dumpfile); }
Partager