说有两种方案的计算机上运行(为了简化起见,运行在Linux上的唯一用户程序),它的一个调用的recv(),并且其中一个是使用PCAP以检测传入的数据包。一个数据包到达,它被程序使用pcap和程序使用recv检测到。但是,是否有任何情况(例如recv()在对pcap_next())的调用之间返回,其中两个中的哪一个不会获取数据包?recv是否从pcaps缓冲区中移除数据包?
我真的不明白的缓冲系统是如何工作的在这里,所以更详细的解释越好 - 有没有在这些计划的人会看到一个包,其他没有任何可能的情况下?如果是这样,那是什么,我该如何预防它?