【发布时间】:2016-08-12 20:28:28
【问题描述】:
我有 2 个用 C 编写的程序,一个程序写入 pcap 文件,第二个程序同时读取它。对于写入,我使用以下代码
while(j < 100000)
{
pcount = pcap_dispatch(p,2000,&pcap_dump,(u_char *)pd);
j = j+pcount;
printf("Got %d packets , total packets %d\n",pcount,j);
}
为了解码数据包,我使用以下代码
while( (returnValue=pcap_next_ex(pcap,&header,&data)) >= 0)
{
printf("Packet # %d ",++packetCount);
printf("return value %d\n",returnValue);
}
当我单独运行程序时,即当我停止写入 pcap 文件时,它会完美地解码数据包。但是当我同时运行这两个程序时,解码器并没有解码所有的数据包。如果我得到 100 个数据包,解码器将只显示 50-60 个解码数据包。
任何帮助将不胜感激。
【问题讨论】: