C - pcap_next()函数应该放在数据包传输之前或之后



我想使用libpcap在tcp-3way握手中捕获ACK数据包代码片段如下

   pcap_packet = pcap_next(pcap_handler, &pcap_header);
    if(pcap_packet !=NULL)
            printf("capture one packet with length of %dn", pcap_header.len);
    // establish TCP connection with the server
    connect(sd_cli, (struct sockaddr *)&svr_addr, sizeof(svr_addr));
    process(pcap_packet);

我想知道我是否应该将pcap_next()函数放在connect()之前或connect()之后?我有点迷失在回调函数机制

谁能解释一下这个例子?由于

您应该捕获数据包并发进行传输。因此,最好使用线程。

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

最新更新