Что нового

проверка доступности сервера в определенном промежутке времени

zbz

Новичок
Подскажите пожалуйста, нужен скрипт для проверки доступности сервера в определенном промежутке времени (например, каждые 30 секунд), при отсутствие связи со сервером запускался другой скрипт .
айпи сервера 192,168,0,101
 

Ksaan

Знающий
Код:
TCPConnect
В справке готовая функция только в цикл её взять
 
Автор
zbz

zbz

Новичок
Ksaan, Спасибо. Все заработало. :IL_AutoIt_1:
вот так выглядит готовый скрипт:
Код:
Example()

Func Example()
     TCPStartup() ; Запуск TCP служб.

     ; Регистрация функции OnAutoItExit для остановки служб при завершении скрипта.
     OnAutoItExitRegister("OnAutoItExit")

     ; Установка IP-адреса и порта
     Local $sIPAddress = "127.0.0.1" ; Этот IP-адрес работает только для теста на вашем компьютере.
     Local $iPort = 5354 ; Порт, используемый для соединения.

     ; Подключает прослушивание сокета, указанного IP-адреса и порта.
     Local $iSocket = TCPConnect($sIPAddress, $iPort)

     If @error Then ; Если ошибка, то Перезагрузка компа
         ; Сервер, вероятно, в офлайне, или порт не открыт на сервере.
         Shutdown(6) ;Force a reboot
         Return False
     Else
		  Sleep(60000); Ждать 60 Секунд
		  Run(@ScriptDir &("\ConnectionCheck.exe") ; Заново запустить этот скрипт (зациклить)

     EndIf

     TCPCloseSocket($iSocket) ; Закрывает сокет
EndFunc   ;==>Example

Func OnAutoItExit()
     TCPShutdown() ; Останавливает TCP службу.
EndFunc   ;==>OnAutoItExit 
Exit

На заметку, чтоб узнать IP и Порт компов в сети, жмём Win+R затем в открывшемся окне пишем NETSTAT и Enter
 
Автор
zbz

zbz

Новичок
Ksaan сказал(а):
А зачем заново запускать скрипт?
Чтобы всегда быть в курсе, связь с сервером есть или нет.
Админ научился деньги зарабатывать :blink:, выдернет сетевой кабель из сервера, а GameClass не может контролировать клиентские компы
 

alex33

Скриптер
Я бы убрал эту строку:
Код:
Run(@ScriptDir &("\ConnectionCheck.exe") ; Заново запустить этот скрипт (зациклить)


И в начале написал бы примерно так:
Код:
While 1
	Example()
	Sleep(1000)
WEnd
 
Верх