首页 > 代码库 > 粗谈pcap_next_ex()

粗谈pcap_next_ex()

 

   pcap_next_ex(pcap_t* p,struct pcap_pkthdr** pkt_header,const u_char** pkt_data)

功能: 从interface或离线记录文件获取一个报文

参数: p: 已打开的捕捉实例的描述符

         pkt_header: 报文头

         pkt_data: 报文内容

返回值: 1: 成功

             0: 获取报文超时

             -1: 发生错误

             -2: 获取到离线记录文件的最后一个报文

 

   pkt_data则是我们需要的报文内容,通过试验,在调用pcap_next_ex()之后系统会分配一部分内存(大概有500KB左右)供其使用,返回的报文内容则存放在这部分内存中,不过这只是暂存,不可能将大量的数据内容放在这一部分内存中的;通过调试可以看到,pcap_next_ex()将返回的报文内容线型的存储在这一部分内存中,当数据量占满了这部分内存后,会充开始位置覆盖原有数据,所以需要保存报文内容需要写入本地文件或另外开辟内存空间存储!

粗谈pcap_next_ex()