pcap_next()函数应该在数据包传输之前还是之后?

时间:2013-03-22 17:27:26

标签: c networking libpcap

我想使用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()函数?我在回调函数机制中有点迷失

任何人都可以用这个例子解释一下吗?感谢

1 个答案:

答案 0 :(得分:0)

您应该将数据包并发捕获到传输。因此,使用线程会更好。

但在你的情况下,在connect之前放pcap_next有更好的机会捕获你需要的东西。但是,connect本身就是一种阻塞方法,可能会丢失数据包。