【发布时间】:2014-05-21 17:46:03
【问题描述】:
我正在尝试使用pcap_next,但我的程序停在这一行:
packet = pcap_next([self pcap_socket], hdr);
出现错误:
thread1: EXC_BAD_ACCESS (code=1, address=0x0)
这是我的代码:
-(const u_char*)readOnPcapDescriptor
{
if([self pcap_is_open]) {
struct pcap_pkthdr *hdr = NULL;
const u_char *packet;
// read for the next packet
packet = pcap_next([self pcap_socket], hdr);
if(packet==NULL)
return NULL;
else
return packet;
}
printf("NOK\nOpen descriptor First!\n\n");
exit(1);
}
我不明白我的错误在哪里。 pcap_t 描述符在此之前是打开的:
pcap_t * open_socket = pcap_open_live(if_name,BUFSIZ,1,1,pcap_errbuf);
并影响到一个实例变量:
[self setPcap_socket:open_socket];
【问题讨论】:
-
你确认
pcap_open_live实际上返回了非NULL吗? -
是的,我使用 pcap 描述符发送一个带有 pcap_inject 的数据包,然后开始使用 pcap_next 读取
标签: objective-c exc-bad-access pcap