0

我想使用 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);

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

谁能用这个例子解释一下?谢谢

4

1 回答 1

0

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

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

于 2013-03-22T17:30:10.693 回答