2012-02-22 112 views
0

我捕获与tshark的数据,并从报文头保存某些数据处理它们,以便检测网络中的一些incedants。我保存在我的Lua程序中的一个表中的数据(这是在cmd使用命令(-Xlua_script :)) 运行与tshark的,现在我想在捕捉运行单独处理每分钟的数据。这是一个在线处理。首先:任何机构知道这是否可以实现?其次,我需要一个计时器,我不知道如何做到这一点,我想要一种方式,我可以采取表中的数据来处理它们,重置表获得下一分钟的新数据,而不会丢失任何数据。 任何建议或想法??如何使用定时器在Lua

+0

请你把心中,我在卢阿新,我不认为不是职业程序员。请尽可能澄清这个想法,谢谢 – leena 2012-02-22 11:20:25

回答

1

lua中并没有像其他一些语言中的'timer'概念,您可以在其中创建一个并设置事件处理程序,并在定时器关闭时通知您的主程序...但是,您可以定期检查os.clock()以确定自从您完成某些处理以来已经过了多长时间,并且如果一分钟过去了,请继续处理数据。

这样的事情可能是你需要的东西:

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