Тестовое задание по разработке библиотеки, ограничивающую количество запущених копий приложения. Написать Win32 приложение, которое дает возможность пользователю запустить не более чем N копий себя: а) на локальной машине; б) в локальной сети.
Оформить это в виде библиотеки.
Основные стратегии запуска: а) на локальной машине - по умолчанию разрешен запуск четырех копий приложения. При наличии файла .settings специального формата в %AppData%/Roaming/limetednumbapp/ - значение больше или равно нулю перекрывает значение по умолчанию. При отсутсвии данного файла он создается при первом запуске. При значении 0 - ни одно из приложений запущено не будет. б) в локальной сети возможно реализовать несколько возможных стратегий - но в тестовом реализована будет только одна - количество запущених приложений в сети равно количеству доступных хостов определямых по маске сети.
Библиотека будет разработана в качестве библиотеки для статической линковки с приложением, количество копий которого необходимо ограничить, тестовое приложение должно быть собрано вместе с библиотекой.
При работе в сети производится сканирование локального компьютера и на любом из свободных портов выше 1024 создается серверный сокет ожидающий подключение (для упрощения задачи в тестовой версии приложение пытается занять один из четырех портов свободных - 1111, 5555, 8888, 9999). После этого, производится сканирование и опрос портов остальных компьютеров в сети, для поиска запущених приложений. Первоначально посылается ICMP-пакет - если копьютер отвечает, его адрес добавляется в массив, на указанные порты посылается строка запроса, которая содержит фразу alloha!+|+имя копьютера+|+порт на котором ожидается подключение+\. После получения ответа aholla!\ приложение считается работающим.
Для создания песочницы используйте скрипт sandbox.bat если это необходимо