Ãœðù - Xakep Online
Ãœðù - Xakep Online
Ãœðù - Xakep Online
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
coding<br />
АнДРей «littleBUddA» ШкРыль<br />
/ Shkrylandrei@rambler.ru /<br />
Ваяем radmin<br />
НАПиСАть ПрОГрАММУ ДЛЯ УДАЛеННОГО<br />
АДМиНиСтрирОВАНиЯ? ЛеГКО!<br />
Как же интересно наблюдать на своем мониторе за тем, что делает твой сосед по отделу,<br />
и понимать, что под его грозным видом скрывается человек с трогательной привязанностью<br />
к сайтам знакомств и любовью к фотографиям пятничной тематики! Однако<br />
речь в этой статье пойдет совсем не о вуайеризме…<br />
Приступим<br />
В этом материале мы рассмотрим создание несколько<br />
усеченного и безвозмездного аналога<br />
radmin’а. Кстати, мы испытали его в рабочих<br />
условиях и узнали много нового о трудовых<br />
буднях Никитоса. Оказывается, он, как и робот<br />
Бендер, интересуется кулинарными онлайнпередачами!<br />
Надеюсь, со временем он угостит<br />
нас своей ядовитой стряпней ;).<br />
Итак, приступим! Первым делом разработаем<br />
серверную часть. Размести на форме следующие<br />
компоненты (смотри рисунок):<br />
• TIdTCPServer (закладка Indy Servers) — как<br />
видишь, для работы с сетью мы будем использовать<br />
компоненты INDY;<br />
• два TEdit — в них вводятся IP-адрес сервера<br />
и номер порта, по которому будет происходить<br />
соединение;<br />
• TButton с текстом «Включить сервер» — с<br />
помощью нее ты будешь запускать сервер,<br />
давая тем самым возможность подключаться<br />
к своей машине. В конце концов, мы же всетаки<br />
должны оставить пользователю право<br />
решать, хочет он, чтобы за ним подсматривали,<br />
или нет ;);<br />
/ 120<br />
• TMemo — в нем будет вестись лог всех осуществляемых<br />
на сервере операций;<br />
• TImage — к нему нам потребуется две<br />
картинки, которые можно найти в исходниках<br />
программы, находящейся на диске. Зовут эти<br />
графические изображения eye1.bmp и eye2.<br />
bmp, а олицетворять они будут соответственно<br />
включенное и выключенное состояние сервера.<br />
Размести компоненты на форме, как это показано<br />
на рисунке.<br />
Кодим сервер<br />
Для начала создай обработчик для кнопки<br />
«Включить…», который будет задавать IP-адрес<br />
и номер порта для приема команд сервером.<br />
Делается это через свойство Bindings, оно<br />
является контейнером для всех сокетов, связанных<br />
с сервером (смотри врезку «Активизация<br />
сервера»). Далее необходимо активизировать<br />
сервер посредством установки свойства Active<br />
компонента TIdTCPServer в True, при этом<br />
кнопка «Включить сервер» превращается в<br />
«Выключить сервер» и меняется картинка в<br />
TImage. Благодаря этому пользователь сможет<br />
визуально наблюдать состояние сервера.<br />
Листинг обработчика ты найдешь в исходниках<br />
программы на DVD, прилагающемуся к журналу.<br />
Также нам потребуется специальная процедура<br />
Log — она отвечает за журналирование<br />
действий, осуществляемых сервером.<br />
Объяви ее в секции public формы следующим<br />
образом:<br />
procedure TForm1.Log(S:string);<br />
Реализация ее очень проста:<br />
Memo1.Lines.Add<br />
(TimeToStr(Time)+' '+S);<br />
Иначе говоря, в ней происходит обычное добавление<br />
строки текста в TMemo. При желании<br />
процедуру можно модифицировать, записывая<br />
данные в файл или еще что-то в этом роде.<br />
Кроме того, нам понадобится процедура для получения<br />
скриншота экрана. Прежде чем писать<br />
ее, установи компонент TPNGImage, который<br />
позволяет работать с изображениями формата<br />
PNG (компонент прилагается к исходникам<br />
программы).<br />
xàêåð 05 /101/ 07