Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых

Глобальные сети компьютеров. Практическое введение в Internet, E-Mail, FTP, WWW и HTML, программирование для Windows Sockets

© Александр Фролов, Григорий Фролов
Том 23, М.: Диалог-МИФИ, 1993, 283 стр.

[Назад] [Содеожание] [Дальше]

2.4. Автоматизация процесса соединения

В зависимости от того, к узлу какой организации вы подлкючаетесь для получения доступа к Internet, может изменяться сценарий взаимодействия в окне терминальной программы. Мы описали сценарий подключения к сети GlasNet с использованием протокола PPP, однако вы, возможно, подключаетесь к узлу другой организации.

Для автоматизации процесса соединения с узлом вы можете написать свой сценарий на специальном командном языке Dial-Up Scripting Command Language (на языке сценариев). Этот сценарий создается в виде обычного текстового файла при помощи любого редактора (например, при помощи редактора Notepad) и подключается к созданному и настроенному соединению при помощи приложения Dial-Up Scripting Tool , пиктограмма которого есть в папке Accessories (рис. 2.30).

Рис. 2.30. Папка Accessories соедржит пиктограмму приложения Dial-Up Scripting Tool

Процедура подключения проста. Запустите приложение Dial-Up Scripting Tool, сделав двойной щелчок левой клавишей мыши по его пиктограмме. На экране появится главное окно приложения (рис. 2.31).

Рис. 2.31. Главное окно приложения Dial-Up Scripting Tool

В списке Connections отображаются соединения, созданные вами в папке Dial-Up Networking. Выберите нужное и нажмите кнопку Browse. Далее с помощью стандартной диалоговой панели Open (рис. 2.32) вы должны найти заранее подготовленный файл сценария и выбрать его.

Рис.2.32. Выбор файла сценария

Если вы подключаетесь к сети GlasNet, то можете создать файл сценария по образцу, который подготовлен в GlasNet:

proc main
  waitfor "ogin:"
  transmit $USERID
  transmit " ppp^M"
  waitfor "assword:"
  transmit $PASSWORD
  transmit "^M"
endproc

В том случае, когда вы подключаетесь к Internet с помощью другой организации, вам необходимо изучить командный язык сценариев. Поэтому сейчас мы и переходим к его краткому описанию.

Главная процедура сценария

Процедура, составленная на языке сценариев Dial-Up Scripting Command Language , должна выглядеть следующим образом:

proc main
…
; Строки процедуры
…
endproc

В любом месте процедуры могут находиться комментарии, которые начинаются с символа ";" и простираются до конца текущей строки.

В теле процедуры вы можете определять переменные типа Boolean (логические), Integer (целые) или String (строчные), причем при определении переменным можно присваивать начальные значения.

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

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

Используя переменные, системные переменные и литералы, вы можете составлять выражения (аналогично тому, как это делают в языке Basic).

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

Описание языка сценариев

В этом разделе мы приведем сокращенное описание основных конструкций языка сценариев.

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

Название Тип Описание
$USERID String Идентификатор пользователя, который вводится в диалоговой панели Connect To
$PASSWORD String Пароль, введенный в диалоговой панели Connect To
$SUCCESS Boolean Переменная устанавливается в случае успешного завершения некоторых команд
$FAILURE Boolean Переменная устанавливается при возникновении ошибки в процессе выполнения команд

Кроме переменных, вы можете использовать в выражениях следующие литералы:

Литерал Описание
^символ Этот литерал используется для представления управляющих символов, таких как перевод строки или возврат каретки. Если указаны символы от a до z, в результате получается управляющие символы со значениями от 1 до 26, а если символы от @ до _, - получаются управляющие смиволы с кодами от 0 до 31.
<cr> Символ перевода каретки
<lf> Символ перевода строки
\" Символ "двойная кавычка"
\^ Символ ^
\< Символ <
\\ Символ \

В языке сценариев вы можете использовать унарные операторы "-" (унарный минус) и ! (дополнение до единицы). Из бинарных операторов вам доступны следующие: "*" (умножение), "/" (деление), "+" (сложение) , "-" (вычитание), "<>" (неравенство), "<=" (меньше или равно), ">=" (больше или равно), "==" (равнество), "and" (логическая операция И), "or" (логическая операция ИЛИ).

Ниже мы приведем сокращенный список команд, которые вы можете использовать при подготовке сценария.

Команда Описание
delay n Задержка на n секунд
goto label Переход на метку label, определенную следующим образом:…goto label…label:
halt Остановка выполнения сценария. Для установления соединения необходимо нажать кнопку Continue
if условие then командыendif Условный оператор. При выполнении условия выполняются команды, расположенные между командами if и endif
transmitt строка Передача строки символов удаленному компьютеру
waitfor строка Ожидание, пока ваш компьютер не получит от удаленного узла указанную строку символов
wile условие do командыendwhile Оператор цикла. Последовательность команд будет выполняться до тех пор, пока условие не будет равно FALSE

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

Для команды waitfor можно указать параметр matchcase. При этом в процессе сравнения будет учитываться различие между строчными и прописными буквами. Если указать параметр until <t>, время ожидания указанной строки символов будет ограничено значением t секунд.

[Назад] [Содеожание] [Дальше]