我正在使用WinPcap开发嗅探器。由于我正在连续运行应用程序,6小时后RAM变满,并且没有响应。为什么记忆不断增加?
const u_char* pkt_data
每次占用记忆吗?
哪个变量在Pcap API中不断占用内存?如果是这样如何释放记忆?
答案 0 :(得分:1)
每次
const u_char* pkt_data
是否占用记忆?
没有。在您的回调例程返回后(如果您使用pkt_data
或pcap_loop()
)或在下一次调用pcap_dispatch()
之后,pcap_next()
指向的内存不能保证保持分配状态或pcap_next_ex()
。在WinPcap中,there's a fixed-size circular buffer into which packets are placed in the kernel,并将它们读入库中的单个固定大小的缓冲区。
哪个变量在Pcap API中连续占用内存?
无。正如nos所示,它可能是程序中的内存泄漏。