Hola! Estoy trabajando con winpcap, el tema es que solo permite escuchar en un solo adaptador a la vez, para resolver esto, estaba pensando en utilizar threads, cada uno con un adaptador distinto.
El tema es que no puedo pasarle correctamente el parámetro, que es un array de chars.
Probe varias combinaciones pero no puedo hacer que funcione, a ver si alguien me puede hechar una mano en esto.
Dejo el código:
int main(int argc, char* argv[])
{
pcap_if_t *alldevs;
pcap_if_t *d;
char errbuf[PCAP_ERRBUF_SIZE];
pcap_findalldevs(&alldevs, errbuf);
int i = 0;
for(d=alldevs; d; d=d->next, i++);
HANDLE *hThreads = new HANDLE[i];
for(d=alldevs; d; d=d->next)
{
char *pszIname = new char[strlen(d->name)];
ZeroMemory(pszIname, strlen(d->name));
strcpy(pszIname, d->name);
hThreads[i] = (HANDLE) _beginthread((void (*)(void*))HandleAdapter, 0, (void*) pszIname);
delete pszIname;
break;
}
for(int j = 0; j < i; j++)
{
if(hThreads[i] != NULL) WaitForSingleObject(hThreads[j], INFINITE);
else cout << "Thread " << i << " Failed." << endl;
}
delete hThreads;
pcap_freealldevs(alldevs);
return 0;
}
int HandleAdapter(void *di)
{
char *d = (char*) di;
cout << d << endl;
return 0;
}
Muchas gracias!
APOKLIPTICO.