I am reading tcp packets from a tcp connection using the following code:<br><br>//start the capture<br>&nbsp;&nbsp;&nbsp;&nbsp; while((res = pcap_next_ex( fp, &amp;header, &amp;pkt_data)) &gt;= 0)<br>&nbsp;&nbsp;&nbsp; {<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(res == 0)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; /* Timeout elapsed */
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; continue;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; /* Print the packet */<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 0 to 53 character seems to have packet information not the data<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for (i=54; i &lt; header-&gt;caplen ; i++)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; fprintf(dumpfile,&quot;%c&quot;, pkt_data[i]);
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; fflush(dumpfile);&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; }<br><br><br>///<br><br>every thing works OK. but it seems that this code sometime receive packets in different order. I mean two packet got swap! (1st packet come second and the 2nd packet come first). 
<br>but when i am running this code, at the same time i am running another software (smartSniff) which can print the packet data in correct order..<br><br>So i am wondering is there any way to determine the correct packet order from tcp header information?
<br><br>Thanks.<br><br>