--[[ <HCExtension>@name Сторож сетевой активности клиентов@author k_ok_o_s@version 1.0 @description Автоматическое изменения скорости работы FDM в зависимости от сетевой активности: 1)клиентов HC (на локальном ПК) 2)пользователя из локальной сети, совместно с кот. используется интернет-канал@event Init/Init@event BeforeAnswerBodySend/BeforeAnswerBodySend</HCExtension> ]]function Init() dir="C:\\Soft\\AU3_Client-Server_speed\\" --папка со скриптами: n=3 --если за n сек. траффик >a Кб. , то скорость FDM снижается a=10 m=60 --если за m сек. траффик <b Кб. , то скорость FDM повышается b=300 last_traffic=0 hc.set_global('current_traffic', 0) while 1 do repeat hc.sleep(n*1000) traffic=hc.get_global('current_traffic') delta_traffic=traffic-last_traffic last_traffic=traffic hc.put_msg(2, "За последние "..n.." сек. траффик составил "..(delta_traffic/1024).." Кб.") until delta_traffic>(a*1024) --hc.shell_execute(dir..'FdmSpeedToMin.exe', nil, nil, 'SW_HIDE') hc.put_msg(2, 'Скорость FDM снижена') repeat hc.sleep(m*1000) traffic=hc.get_global('current_traffic') delta_traffic=traffic-last_traffic last_traffic=traffic hc.put_msg(2, "За последние "..m.." сек. траффик составил "..(delta_traffic/1024).." Кб.") until delta_traffic<(b*1024) ClientLowState = io.open(dir.."SpeedOfClientIsLow.tmp") --Эта функция открывает файл в режиме, указанном в строке mode. Возвращает хендлер файла, или, в случае ошибок, nil и сообщение об ошибке. if not ClientLowState then --hc.shell_execute(dir..'FdmSpeedToMax.exe', nil, nil, 'SW_HIDE') hc.put_msg(2, 'Скорость FDM повышена') end endendfunction BeforeAnswerBodySend() hc.set_global('current_traffic', (hc.user_to_internet+hc.user_from_cache+hc.user_from_internet))end
--[[ <HCExtension>@name Сторож сетевой активности клиентов@author k_ok_o_s@version 1.0 @description Автоматическое изменения скорости работы FDM в зависимости от сетевой активности: 1)клиентов HC (на локальном ПК) 2)пользователя из локальной сети, совместно с кот. используется интернет-канал@event Init/Init@event Timer1s/Timer1s @event RequestHeaderReceived/RequestHeaderReceived</HCExtension> ]]function Init() dir="C:\\Soft\\AU3_Client-Server_speed\\" --папка со скриптами: n=3 --если за n сек. траффик >a Кб. , то скорость FDM снижается a=10 m=60 --если за m сек. траффик <b Кб. , то скорость FDM повышается b=300 hc.set_global('last_traffic', 0) hc.set_global('current_traffic', 0) hc.set_global('time_counter', 0) hc.set_global('job_switch', 'wait_for_high_traffic') endfunction Timer1s()hc.set_global('time_counter', (hc.get_global('time_counter')+1)) if job_switch=="wait_for_high_traffic" and hc.get_global('time_counter')==n then hc.put_msg(2, "За последние "..n.." сек. траффик составил "..((hc.get_global('current_traffic')-hc.get_global('last_traffic'))/1024).." Кб.") if (hc.get_global('current_traffic')-hc.get_global('last_traffic'))>(a*1024) then --hc.shell_execute(dir..'FdmSpeedToMin.exe', nil, nil, 'SW_HIDE') hc.put_msg(2, 'Скорость FDM снижена') hc.set_global('job_switch', 'wait_for_low_traffic') end hc.set_global('last_traffic', hc.get_global('current_traffic')) elseif job_switch=="wait_for_low_traffic" and hc.get_global('time_counter')==m then hc.put_msg(2, "За последние "..m.." сек. траффик составил "..((hc.get_global('current_traffic')-hc.get_global('last_traffic'))/1024).." Кб.") if ((hc.get_global('current_traffic')-hc.get_global('last_traffic'))<(b*1024)) and not io.open(dir.."SpeedOfClientIsLow.tmp") then --hc.shell_execute(dir..'FdmSpeedToMax.exe', nil, nil, 'SW_HIDE') hc.put_msg(2, 'Скорость FDM повышена') hc.set_global('job_switch', 'wait_for_high_traffic') end hc.set_global('last_traffic', hc.get_global('current_traffic')) end endfunction RequestHeaderReceived() hc.set_global('current_traffic', (hc.user_to_internet+hc.user_from_cache+hc.user_from_internet))end