我想使用libpcap在tcp-3way握手中捕获ACK数据包 代码段如下
pcap_packet = pcap_next(pcap_handler, &pcap_header);
if(pcap_packet !=NULL)
printf("capture one packet with length of %d\n", pcap_header.len);
// establish TCP connection with the server
connect(sd_cli, (struct sockaddr *)&svr_addr, sizeof(svr_addr));
process(pcap_packet);
我想知道是否应该在connect()之前或connect()之后放置pcap_next()函数?我在回调函数机制中有点迷失
任何人都可以用这个例子解释一下吗?感谢
答案 0 :(得分:0)
您应该将数据包并发捕获到传输。因此,使用线程会更好。
但在你的情况下,在connect
之前放pcap_next
有更好的机会捕获你需要的东西。但是,connect
本身就是一种阻塞方法,可能会丢失数据包。