Что Делать, Если Программа Вдруг Перестала Работать

Есть такая классная простая программа для вашего телефона: Remote Volume Control. Он делает одну простую вещь – позволяет вам регулировать громкость на вашем компьютере (ПК).

Удобно: включи фильм, упади в гамак, а когда вдруг возникнет необходимость, прибавь громкость.

Внезапно, в один чудесный день, программа просто молча перестала работать.

Никаких обновлений не было, настройки сети не менялись.

Как-то я не привык, чтобы программы вдруг ломались и переставали работать самостоятельно.

В общем, под катом я расскажу, как идет расследование и чем обернулось дело.

Отвлекаясь от темы, вообще говоря, есть веб-интерфейс и даже специализированный клиент для vlc, который, кроме всего прочего, позволяет регулировать громкость, но у него есть два недостатка: он не будет работать ни на других плеерах, ни на ютубе и во-вторых , это медленно (потому что TCP).

Возвращаясь к теме, Remote Volume Control — это очень простая программа, позволяющая изменять общую громкость системы.

Для работы также необходимо запустить простой консольный сервер, он работает мгновенно, а также может отключать монитор.

Мне никогда не нужно выключать монитор, но отключение питания помогло бы.

ну нет-нет, мы не об этом.

В общем, внезапно программа просто незаметно перестала работать.

Я ломал голову над тем, что может быть не так.

Я удалил некоторые недавно установленные программы, думал, кто-то занял их порт или что-то в этом роде.

Просто не пробовал.

Под конец я уже использую Netcat Я начал изучать протокол, в отчаянной попытке понять, что может быть не так.

Так вот эта штука работает через UDP и занимает порт 5555. Она просто отправляет команду и вроде бы не ожидает никакого ответа.

Что, с одной стороны, круто: работает очень быстро.

С другой стороны, полное отсутствие обратной связи: вообще не понятно, получено сообщение или нет. Сам протокол.

"протокол" - очень громкое слово, просто при изменении громкости с телефона "0,25" всплывает, например, прямо в тексте.

Это означает 25% объема.

И по команде «выключить монитор» приходит 1.00, вот и весь протокол.

С помощью того же netcat попробовал эмулировать клиент, возможно серверная часть "гнилая" и что-то с ней не так, написал ту же 0.25. безуспешно, сервер вообще не реагировал (причём при нормальной работе там видно какая громкость установлена).

Установил сниффер, опять что-то написал в netcat и тут бац, монитор гаснет. Думаю: «обычный сниффер, он убил мою систему».

Оказалось, что монитор отключил мой сервер и с Remote Volume Control, и по команде, и написал об этом в консоли.

«Вот это интересно», — подумал я.

Смотрю на последнее, что отправил — «123».

Пишу еще раз «123», и монитор гаснет корректно.

Также гаснет, если написать «321», «12», любые цифры, а если встречается буква, то реакции нет. А если написать легальную команду на выключение монитора «1.00», то тоже тишина.

И тут меня осенило: десятичная точка.

Ну и конечно же, я пишу «1.00» и монитор гаснет. «0,25» — это 25% объема.

Вспомнил, что некоторое время назад из-за одной программы, несмотря ни на что, хоть это и был брокерский клиент альфа-банка, я был вынужден сменить региональные настройки на русский.

Я зашёл в региональные настройки, поменял десятичный разделитель с запятой на точку и у меня всё заработало.

Теги: #iphone #объем #Анализ и проектирование систем

Вместе с данным постом часто просматривают: