2012-02-22 9 views
0

私はtsharkでデータをキャプチャし、パケットヘッダーから特定のデータを保存して、ネットワーク内の一部のエンデンツを検出します。私はluaプログラムのテーブルにデータを保存しました。(これはコマンド(-Xlua_script :)を使用してtsharkを使ってcmdで実行しています) 今、キャプチャの実行中に各分のデータだけを処理したいと思います。それはオンライン処理です。まず第一に、これを実装できるかどうかは、どのような体も知っていますか?第二に、タイマーが必要です。これを行う方法がわかりません。テーブルのデータを処理してテーブルをリセットしてデータを失うことなく次の分の新しいデータ。 提案やアイデアは何ですか?ルアでタイマーを使う方法

+0

してください、私はLUAで新たなんだ、と私はそのプロフェッショナル向けのプログラマーではないよ念頭に置きます。可能であれば、可能な限りアイデアを明確にしてください。 – leena

答えて

1

いくつかの他の言語のように、luaでは 'timer'の概念はありません。そこでは、イベントハンドラを作成してタイマーがオフになったときにメインプログラムに通知することができます。定期的にos.clock()をチェックして、何らかの処理を行ってからの経過時間を確認し、1分が経過したらデータを処理します。このような

何かは何が必要かもしれません:

lastTimeProcessed = os.clock() 

function IsTimeToProcess(currentTime) 
    span = currentTime - lastTimeProcessed 
    if span >= 60 then 
     lastTimeProcessed = currentTime 
     return true 
    end 

    return false 
end 

while true do 
    if IsTimeToProcess(os.clock()) then 
     -- process some data here 
    end 
    -- otherwise do another round of whatever you're doing 
end 
関連する問題