0

私は PERL スクリプトを作成しています。このスクリプトはパケットをキャプチャし、その秒にオンラインだったすべての TCP ストリームに関する統計を毎秒生成します。私は NET::Pcap を使用していますが、どうにかしてこれを実装したいと考えており、可能であればスレッドを使用しません。select() と pcap_breakloop() を試しましたが、うまくいきません。

私は考えていました:

...
$pcap = pcap_open_live($dev, 1024, 1, 0, \$err);

select($pcap, undef, undef, 1)
if 1 sec elapsed print a line with data maintained by the pcap_callback function, 
and go back to pcap_loop

この問題を解決する方法はありますか?select を使用する必要があるかどうかはわかりませんが、PERL を初めて使用するため、他に良いアイデアがありません。select を選択した理由は、トラフィックがなくても統計を生成する必要があるからです。

たとえば、送信されたバイトを毎秒印刷したい場合は、合計ゼロ行も生成する必要があります。

どんな助けでも大歓迎です:)

4

1 に答える 1