我正在使用pcap_loop来监听无线消息流量。以下是可以正常工作的代码的摘要。我的问题是我希望闹钟超时不到一秒钟。我试过u_alarm,但根本无法获得任何数据。
void alarm_handler(int sig) {
timed_out = true;
pcap_breakloop(loop_handle);
}
void got_packet(u_char *args, const struct pcap_pkthdr *header,
const unsigned char *packet) {
memcpy(last_pkt, packet, 64);
// works fine
}
// ... in the main program`enter code here`
int rto = 1;
signal(SIGALRM, alarm_handler);
alarm(rto);
pcap_loop(loop_handle, 1, got_packet, NULL);
// check timed_out; works fine
有人可以帮助一个有效的例子吗?