Найпростіший TELNET-клієнт
Delphi site: daily Delphi-news, documentation, articles, review, interview, computer humor.
Тепер я хочу показати вам, як можна написати найпростішого Telnet-клієнта. За допомогою такого клієнта можна підключитися до якогось серверного порту і виконувати команди прямо на сервері. Наприклад, якщо підключитися до порту Telnet, можна запускати на сервері програми. Якщо підключиться до порту FTP, можна виконувати команди FTP з командного рядка.
Для тестування нашого Telnet-клієнта я використовуватиму підключення до локального FTP-сервера, який входить у постачання Windows 2000 та Windows ХР. У старих версіях Windows 9х можна використовувати Personal
WEB Server, який відрізняється лише налаштуваннями та меншою кількістю можливостей. Але про це трохи згодом.

Мал. 4.42. Форма майбутньої програми
Крім цього нам знадобляться дві кнопки: Connect та Disconnect для підключення та відключення від сервера. І один компонент тмето, в якому ми набиратимемо команди, що відправляються серверу, і відображати результат виконання команд.
Найголовнішим компонентом буде IdTelnetDemo із закладки Indy Clients палітри компонентів. Його потрібно просто перенести на форму, всі його властивості залишимо заданими за умовчанням.
У перших трьох рядках я встановлюю властивості компонента ldTel net 1:
Тут просто викликається метод Disconnect компонента IdTelnetl, що зумовлює відключення від сервера.
Для надсилання команд на сервер ми створимо обробник події OnKeyPress для компонента Memol. У цьому обробнику напишемо таке:
Тут відбувається перевірка: якщо компонент IdTelnetl підключено до сервера, символ натиснутої клавіші потрібно передати на сервер. Для цього використовується метод sendch компонента IdTelnetl, а якпараметру цього методу передається символ. Тепер, коли ми натискаємо будь-яку клавішу для введення символу компонент Memol, цей символ миттєво відправляється на сервер.
У принципі, вся робота цього оброблювача спрямована на те, щоб проінформувати користувача про те, що з'єднання відбулося успішно. Я просто виводжу відповідний текст у компонент Memol, що надасть програмі більшої наочності.
Тепер створимо обробник події на DataAvailable компонента idTeineti. Цей обробник викликається щоразу, коли з сервера надійшли дані. У ньому потрібно написати код із лістингу 4.9.
Stop: = Pos (CR, Buffer); if Stop = 0 then Stop := Length(Buffer) + 1; while Start "= Length (Buffer) do begin Memol.Lines.Strings[Memol,Lines.Count - 1] := Memol.Lines.Strings[Memol.Lines.Count

Мал. 4.43. Результат роботи програми
Весь написаний у лістингу код спрямований на виведення тексту за допомогою компонента Мепюі. Для цього шукаємо символи кінця рядка та перекладу каретки, і якщо вони знайдені, то компонент додається новий рядок. Для полегшення пошуку заведено дві константи СЯ І Ц? З шістна-дцатеричними значеннями #13 і #ю, які є кодами символів кінця рядка та перекладу каретки.
Тепер поговоримо про принцип тестування. Для перевірки роботи програми я встановив на комп'ютері сервер IIS. Якщо ваш комп'ютер працює під керуванням Windows 2000/XP, для встановлення цього сервера вам необхідно виконати наступні дії.
а Для початку необхідно вставити компакт-диск з Windows 2000 або ХР у пристрій читання і запустити setup.exe або дочекатися автозапуску. Переді мною відчинилось вікно, як на рис. 4.44 (у вас воно може відрізнятися, але сенс матиме той самий).

Мал.4.44. Вікно інсталяції Windows 2000
□ Виберіть Установка додаткових компонентів, і ви опинитеся у вікні, схожому на мал. 4.45. Можете виділити у ньому все підряд, у господарстві знадобиться (але лише на навчання). Якщо ви встановлюєте на робочий мережевий сервер, ставте тільки те, що потрібно.
Найважливішим для нас буде Internet Information Services (IIS).
Можете двічі клацнути по ньому, щоб переглянути склад IIS. Тут ви побачите FTP-сервер, Web-сервер, документацію (крива, але все ж таки) і т. д. Я залишив все, що є, обраним (це забере не так багато місця на диску) і натиснув кнопку Далі.
Після встановлення додаткових сервісів потрібно перейти в Пуск/Панель керування/Адміністрація/Керування комп'ютером. Перед вами має відчинитися вікно, як на рис. 4.46. Якщо ви розкриєте тут гілку Служби та програми, то зможете побачити новий пункт Internet
Information Services. Виділіть його, і в правій половині вікна з'являться:
• Віртуальний SMTP-сервер за промовчанням.

Мал. 4.45. Встановлення додаткових компонентів

Мал. 4.46. Вікно налаштування IIS
Виділяючи будь-який із цих сервісів, ви можете запускати, зупиняти та зупиняти будь-який із них за допомогою відповідних кнопок на панелі інструментів.
На закладці Домашній каталог потрібно вказати папку, з якою користувачі працюватимуть за протоколом FTP. Тут потрібно вказати вид доступу до папки.
Натисніть "Enter", і ви побачите відповідь, в якій сервер повідомляє вам, що для цього імені користувача потрібно вказати пароль. Щоб ввести пароль, виконайте команду:
Щоб дізнатися, які ще команди ви можете виконувати, можна виконати команду:
Ось і все, що я хотівЯк бачите, за його допомогою ви можете з'єднуватися з серверними програмами і безпосередньо виконувати їх команди. У цьому прикладі я показав пряму роботу з FTP-сервером, але ви можете таким чином потренуватися з 7 портом, який видає ЕСНО-відповіді (просто повертає все, що ви йому відіслали), або з поштовим сервером, якщо ви знаєте його команди .
На компакт-диску в директорії \Приклади\Глава 5\Telnet ви можете побачити приклад програми та кольорові малюнки цього розділу.