jmsly
驱动牛犊
驱动牛犊
  • 注册日期2001-06-27
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1611回复:0

c++builder下WINPCAP使用的新问题!

楼主#
更多 发布于:2001-08-24 14:13
我在线程里RECVPACKET,在主MAINFORM中分析,可以得到各种协议
在NT下,我运行一会(3-5 分钟)就出错。是非法访问的错。但前面的几十个包我接收的很正常!在98下,我也发现类似的错。只是在98系统比较忙的时候才出现。我有点解释不通是怎么回事了,请高手赐教!
void __fastcall TMainForm::OnPacketHandle(LPPACKET pPacket)
{

  PETHERNET_HDR pEthernetHdr;
  PIP_RHDR pIP;
  char SrcAddr[64],DestAddr[64];
  String buf;
  struct bpf_hdr * pHDR;
  int nProto, nIPProto ,i,j;
  ULONG ulByte;
  u_int off;
  u_int tlen1;
  if (pPacket == NULL) return;
  ulByte=pPacket->ulBytesReceived;
  off=0;
  while (off <ulByte)
  {
  pHDR=(struct bpf_hdr *)((UCHAR *)pPacket->Buffer+off);
  tlen1=pHDR->bh_datalen;
  off+=pHDR->bh_hdrlen;
  pEthernetHdr = PETHERNET_HDR((UCHAR *)pPacket->Buffer+off);
  nProto = pEthernetHdr->Protocol[0]*256+pEthernetHdr->Protocol[1];  //在这里显示非法访问
  switch(nProto)
  {
。。。
}
}
柳聿
游客

返回顶部