|
I have a problem receiving packets in my main
capture loop. I call the ListenThread function from my program and start a new
thread (it's not the thread that causes the problem, I still have the problem
without it). The function packetReceivePacket(m_lpAdapter,lpPacket,TRUE) gives
signals that I receive packets even when there aren't any packets send (I'm sure
no packets are send, I watch the traffic with Ethereal), even when my computer
is disconnected from any network, it still gives signals! The code is written
under Visual C++ maybe that's a problem??? My adapter is good initialated, I can
send packets (Ethereal shows them). So my question is: what's going wrong??? and
of course, how do I solve this! Thank U.
AfxBeginThread(ListenThread,this);
UINT CPIGDlg::ListenThread(LPVOID
pParam)
{ CPIGDlg * dlg = (CPIGDlg *) pParam; dlg->ListenThread(); return 0; } void
CPIGDlg::ListenThread()
{ LPPACKET lpPacket; char buffer[256000]; if (!m_lpAdapter || (m_lpAdapter->hFile ==
INVALID_HANDLE_VALUE))
{ AfxMessageBox("Unable to open the adapter"); } // set the network adapter in promiscuous
mode
if(PacketSetHwFilter(m_lpAdapter,NDIS_PACKET_TYPE_PROMISCUOUS)==FALSE){ AfxMessageBox("Warning: unable to set promiscuous mode!\n"); } // set a 512K buffer in the
driver
if(PacketSetBuff(m_lpAdapter,512000)==FALSE){ AfxMessageBox("Unable to set the kernel buffer!\n"); } // set a 1 second read
timeout
if(PacketSetReadTimeout(m_lpAdapter,1000)==FALSE){ AfxMessageBox("Warning: unable to set the read tiemout!\n"); } //allocate and initialize a packet structure
that will be used to
//receive the packets. if((lpPacket = PacketAllocatePacket())==NULL){ AfxMessageBox("\nError: failed to allocate the LPPACKET structure."); } PacketInitPacket(lpPacket,(char*)buffer,256000); //main capture loop while(true) { // capture the packets if(PacketReceivePacket(m_lpAdapter,lpPacket,TRUE)==FALSE){ MessageBox("Error: PacketReceivePacket failed"); } else{ AfxMessageBox("packet captured"); } } PacketFreePacket(lpPacket);
// close the adapter and exit PacketCloseAdapter(m_lpAdapter); } |
- Re: [WinPcap-users] problem receiving packets, packetRecei... Annie Deroo
- Re: [WinPcap-users] problem receiving packets, packet... Loris Degioanni
- RE: [WinPcap-users] problem receiving packets, packet... Steighton_Haley
