Для чего?
Предполагается, что пользователь работает с каким-то онлайн-ресурсом и только с ним, вдруг случается неслыханное событие — пропадает сеть или ресурс оказывается вне доступа.
Чтобы не просиживать у компьютера зря, пользователь делает погромче звук и запускает программу, которая ждёт появления ресурса в сети, а сам отправляется считать воробьев на балкон.
Возможности
Описание
Выдает звуковые сигналы: на одной частоте если ресурс доступен, на другой, — если ресурс не доступен; после изменения состояния уходит в фон и осуществляет проверку доступности ресурса.
Код
P.S. Конечно, beep лучше заменить чем-нибудь.
Предполагается, что пользователь работает с каким-то онлайн-ресурсом и только с ним, вдруг случается неслыханное событие — пропадает сеть или ресурс оказывается вне доступа.
Чтобы не просиживать у компьютера зря, пользователь делает погромче звук и запускает программу, которая ждёт появления ресурса в сети, а сам отправляется считать воробьев на балкон.
Возможности
- Может находится в двух состояниях.
- Работает в фоне.
- Осуществляет мониторинг состояния ресурса.
- Единожды оповещает с помощью звука об изменении состояния.
Описание
Выдает звуковые сигналы: на одной частоте если ресурс доступен, на другой, — если ресурс не доступен; после изменения состояния уходит в фон и осуществляет проверку доступности ресурса.
Код
Код Си.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int test(char * ip) {
if(system(ip)==0) {
return 1;
}
else
{
return 0;
}
}
void wait(int b, char * ip) {
while (1) {
sleep (5);
test(ip);
if (b!=test(ip)) {
b=test(ip);
if (test(ip) == 1) {
system("beep -f 2200 -l 3000");
}
else
{
system("beep -f 1200 -l 2000");
}
}
}
}
void start (char * ip) {
if (test(ip)==0)
system("beep -f 1200 -l 2000");
}
int main (int argc, char *argv[]) {
if (argc < 2) {
printf("Введите адрес вторым параметром ");
return 0;
}
char ip[100]="ping -c 1 ";
sprintf(ip, "%s%s", ip, argv[1]);
int b = 0;
start (ip);
wait (b, ip);
}
P.S. Конечно, beep лучше заменить чем-нибудь.
Поделиться с друзьями
Комментарии (10)
KlimovDm
17.10.2016 17:16+1>>> или ресурс оказывается вне доступа
Доступ к ресурсу не мониторится ping-ом. Скажем прилег httpd, а сервер пингуется. Или наоборот, все работает, но прикрыто icmp echo.
kahi4
Зачем тут это вообще? Это, эм, даже на hello world для C с трудом тянет.
dcc0
Ваш пример не о том, вообще…
kahi4
А о чем ваш пример? Конечный автомат с двумя состояниями? Которые, вдобавок, не хранятся, а каждую новую итерацию он опрашивает с нуля и принимает решение? Нет ни переходов между состояниями, ничего, только вечный цикл, внутри которого условие. Это как-то не сильно тянет на конечный автомат. Мой пример в небольшие доработки тоже так сможет.
dcc0
Покажите, если будет время…
Условие — оповещение один раз при изменении состояния.
dcc0
С учётом Вашего примера, алгоритм Вы не поняли…