2011-02-06 32 views

Trả lời

15

Hướng dẫn mô tả điều này thật đáng kinh ngạc (tôi nói rằng với khuôn mặt thẳng thắn, lời hứa). Từ man pcap_loop:

pcap_loop() processes packets from a live capture or ``savefile'' 
    until cnt packets are processed, the end of the ``savefile'' is 
    reached when reading from a ``savefile'', pcap_breakloop() is called, 
    or an error occurs. It does not return when live read timeouts 
    occur. A value of -1 or 0 for cnt is equivalent to infinity, so that 
    packets are processed until another ending condition occurs. 

    pcap_dispatch() processes packets from a live capture or ``savefile'' 
    until cnt packets are processed, the end of the current bufferful of 
    packets is reached when doing a live capture, the end of the ``save‐ 
    file'' is reached when reading from a ``savefile'', pcap_breakloop() 
    is called, or an error occurs. Thus, when doing a live capture, cnt 
    is the maximum number of packets to process before returning, but is 
    not a minimum number; when reading a live capture, only one bufferful 
    of packets is read at a time, so fewer than cnt packets may be pro‐ 
    cessed. A value of -1 or 0 for cnt causes all the packets received in 
    one buffer to be processed when reading a live capture, and causes 
    all the packets in the file to be processed when reading a ``save‐ 
    file''. 

Tôi biết bạn không thực sự muốn đọc và hiểu tất cả điều đó, vì vậy hãy chia nhỏ nó.

Cả hai chức năng:

  • Process gói tin từ ảnh chụp trực tiếp hoặc "savefile" cho đến khi nào các điều kiện xảy ra:
    • số lượng quy định là đạt
    • cuối "savefile "được đạt đến
    • pcap_breakloop() được gọi là
    • lỗi xảy ra
  • Xem xét -1 hoặc 0 về cơ bản có nghĩa là "xử lý một số lượng gói vô hạn" - tức là, cho đến khi một điều kiện kết thúc khác xảy ra. (-1 được khuyến khích cho khả năng tương tác với các phiên bản cũ, sau này trong cuốn hướng dẫn)

pcap_dispatch() một mình

  • Cũng trả về sau khi kết thúc các bufferful hiện tại của gói tin được đạt tới, khi thực hiện chụp trực tiếp (nói cách khác, có thể trở lại thường xuyên hơn, vì số lượng được chỉ định không phải là số tối thiểu)