Category Archives: С/C++
Сегодня неторопясь допинал свой курсач по ОСям. Задание, кстати, было весьма интересное, за мои 2.5 года в институте такое впервые ) А именно наваять чекер листов прокси, на нативных функциях Win32 и с применением многопоточности. Требования очень простые – на входе текстовик с HTTP проксиками, на выходе – такой же, но составленный только из работающих и отсортированный по возрастанию времени отклика + возможность определять, являются ли проверенные прокси транспарентными, либо все-таки скрывают истинный IP. Реализация не сложная, на C++ с использованием виндовых сокетов (сначала пробовал wininet, но оказалось, что он имеет нехорошую способность иногда намертво подвисать, причем поток после этого ведет себя неадекватно). Так что самым оптимальным решением, на мой взгляд, было использование winsock для работы с сокетами в неблокирующем режиме. Появилась возможность самим управлять таймаутом операции, а следовательно, и предотвратить случаи некорректной работы потоков.
При реализации обнаружил интересную задачу, связанную с функциями переменного числа аргументов. Вкратце, она сводилась к тому, чтобы написать свой переходник для printf(char *format, …) – с блекджеком и шлюхами, естественно, скажем, вида LogMessage(char *format, …) – так, чтобы внутренности этого переходника вызывали printf с теми же параметрами. Возможно, стоит написать об этом отдельный пост, а пока просто сообщу, что один способ я нашел и он лежит внутри. 🙂 Не самое лучшее решение, опять же, но для сельской местности сойдет.
К сему прилагаются бинарники и исходники:
Download
3