DELPHI截取网络数据包

本文探讨了使用Delphi和wincap包中的PacketReceivePacket函数进行网络数据包捕获时遇到的内存泄漏问题。文章详细介绍了在设置缓冲区大小、读取超时以及初始化数据包时的错误处理,并提供了可能引起内存泄漏的原因分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DELPHI截取网络数据包 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061218101640102.html
用Delphi和wincap包中PacketReceivePacket函数接包时出现内存泄漏。  
  这是扫描什么原因?  
  var  
  recvbuf:   array[0..1024*250   -   1]   of   char;  
   
  if   not   PacketSetBuff(lpAdapter,250*1024)   then  
  begin  
          ShowMessage(Format('PacketSetBuff   Error:   %d',[GetLastError()]));  
  exit;  
  end;  
   
  if   not   PacketSetReadTimeout(lpAdapter,1)   then  
  ShowMessage('Warning:   Unable   to   set   the   timeout');  
   
      lppacketr   :=   PacketAllocatePacket();  
  if   lppacketr   =   nil   then  
  begin  
  ShowMessage(Format('PacketAllocatePacket   receive   Error:   %d',[GetLastError()]));  
  exit;  
  end;  
   
  PacketInitPacket(lppacketr,@recvbuf,sizeof(recvbuf));  
   
  while   true   do  
  begin  
                        if   not   PacketReceivePacket(lpAdapter,lppacketr,true)   then   exit;  
                    end;    
 

用Delphi和wincap包中PacketReceivePacket函数接包时出现内存泄漏。  
  这是什么原因?  
 

转载于:https://www.cnblogs.com/delphi2007/archive/2008/10/28/1320981.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值