阅读:1611回复:0
c++builder下WINPCAP使用的新问题!
我在线程里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) { 。。。 } } |
|
|