<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2900.2873" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT size=2>Joe, </FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><FONT size=2>I think your approach is not a good one: you are basically 
receiving packets from the handler of a button in your GUI. The overall effect 
is that your GUI will be blocked forever, because you never return from the 
Click button handler (OnButtonCapture). You should never do lengthy operations 
(or blocking ones) in any handler related to the GUI (OnClick and so on), 
because when you are doing the lenghty operation, the GUI becomes not 
responsible to user interaction (every user interaction is managed by a single 
thread, what's usually called "main thread" or "UI thread").</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><FONT size=2>The easiest solution (at least for me) would be to spawn a 
worker thread that captures packets in the background, and the UI interacts with 
the thread (using events, a global variable, whatever) to stop the capture 
thread.</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><FONT size=2>In particular, it's always better to create a loop like 
</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><FONT size=2>while (pcap_next_ex returns success AND we do not need to 
terminate the capture)</FONT></DIV>
<DIV><FONT size=2>{</FONT></DIV>
<DIV><FONT size=2>&nbsp;&nbsp;&nbsp; process the packet</FONT></DIV>
<DIV><FONT size=2>}</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><FONT size=2>(ok, I'm lazy and I prefer to write text rather than code 
today, it's should be clear enough).</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><FONT size=2>Have a nice day</FONT></DIV>
<DIV><FONT size=2>GV</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<BLOCKQUOTE 
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
  <DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
  <DIV 
  style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B> 
  <A title=chikabanga2005@yahoo.com href="mailto:chikabanga2005@yahoo.com">joe 
  kibz</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>To:</B> <A title=winpcap-users@winpcap.org 
  href="mailto:winpcap-users@winpcap.org">winpcap-users@winpcap.org</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>Sent:</B> Friday, May 12, 2006 5:53 AM</DIV>
  <DIV style="FONT: 10pt arial"><B>Subject:</B> [Winpcap-users] Re: breaking out 
  of a pcap_next_ex() loop</DIV>
  <DIV><FONT size=2></FONT><FONT size=2></FONT><BR></DIV>
  <DIV>problem:</DIV>
  <DIV><FONT size=2></FONT>&nbsp;</DIV>
  <DIV>here's my code in brief:</DIV>
  <DIV><FONT size=2></FONT>&nbsp;</DIV>
  <DIV>void CButton::onButtonCapture(){</DIV>
  <DIV><FONT size=2></FONT>&nbsp;</DIV>
  <DIV>open a device handle;</DIV>
  <DIV><FONT size=2></FONT>&nbsp;</DIV>
  <DIV>while(pcap_next_ex())//capture packets;</DIV>
  <DIV><FONT size=2></FONT>&nbsp;</DIV>
  <DIV>}</DIV>
  <DIV><FONT size=2></FONT>&nbsp;</DIV>
  <DIV>?How do i break out or stop a pcap_next_ex() loop whenever i want ?</DIV>
  <DIV>?How does the timeout value in pcap_next_ex() parameters work ?</DIV>
  <DIV><FONT size=2></FONT>&nbsp;</DIV>
  <DIV><FONT size=2></FONT>&nbsp;</DIV>
  <DIV>joe</DIV>
  <P>
  <HR SIZE=1>
  Yahoo! Mail goes everywhere you do. <A 
  href="http://us.rd.yahoo.com/evt=31132/*http://mobile.yahoo.com/services?promote=mail">Get 
  it on your phone</A>.
  <P>
  <HR>

  <P></P>_______________________________________________<BR>Winpcap-users 
  mailing 
  list<BR>Winpcap-users@winpcap.org<BR>https://www.winpcap.org/mailman/listinfo/winpcap-users<BR></BLOCKQUOTE></BODY></HTML>