Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Хайретдинов_Лекции_СИТ-n.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
14 Мб
Скачать
☆

Нестандартные telnet-серверы

Возможно, у Вас создалось впечатление, что протокол TELNET полезен лишь для входа на другие компьютеры. Но это не так. Если я написал прикладную программу, и для работы с ней вполне достаточно эмуляции терминала VT-100, который поддерживается протоколом TELNET, то почему бы не использовать программу telnet в качестве программы-клиента и не написать специальную программу-сервер, которая сделает то, что я захочу? Все, что я должен сделать - это заставить мой сервер понимать язык протокола TELNET. Преимущества: я избавлюсь от необходимости обеспечивать специальной программой-клиентом каждого, кто собирается использовать мою прикладную программу. Кроме того, пользователи получат интерфейс, с которым они уже знакомы: все, что работает с протоколом TELNET, будет работать с этой новой прикладной программой. Недостатки: компьютер-сервер виртуально выделяется под одну-единственную прикладную задачу; каждый, кто подключится к ней посредством программы telnet, по умолчанию попадет на мою прикладную программу — и только.

Для Вас это также означает, что, устанавливая соединение с каким-либо компьютером посредством протокола TELNET, Вы не получите обычного приглашения на вход в систему,3 а получите то, что предусмотрел автор данной сервисной программы. Поэтому в таких случаях следует проявлять некоторую осторожность. Ниже приведены замечания, которые могут оказаться полезными.

  • Почти все специальные серверы отличаются друг от друга. Некоторые имеют

хороший пользовательский интерфейс, а некоторые — плохой. В большинстве

специальных серверов имеется встроенная подсказка (иногда полезная, иногда нет).

  • Большинство серверов запрашивают при входе в них тип терминала. "VT-100", вероятно, встречается чаще всего, так как он используется во многих эмуляторах терминалов и большинстве систем управления окнами. Если Вы не знаете, какой тип терминала указать, а Ваш терминал не представлен, или после указания "VT-100" происходят странные вещи, укажите "hardcopy" (печатающий терминал) или "dumb" (терминал ввода-вывода).

  • Большинство серверов сразу же сообщают Вам, как из них выходить или ' завершать сеанс. Прочтите эту информацию в начале сеанса, иначе не исключена возможность зависания. Конечно, для выхода из сеанса Вы всегда можете использовать escape-символ протокола TELNET. (Смотрите, не забудьте его.)

Telnet и нестандартные порты

При выделении компьютера под нестандартную сервисную программу ограничивается применение нестандартных серверов прикладными задачами, в которых дружественность стоит на первом месте. Решить эту проблему можно, если найти компромисс между дружественностью и капиталовложениями. Вам необходимо, используя существующую подпрограмму-клиент программы telnet, написать специальный прикладной сервер, не мешая при этом обслуживающему компьютеру выполнять обычные функции, предусмотренные для него протоколом TELNET. Это возможно, но для этого нужно знать больше о принципах работы сети Internet. Так как компьютеры имеют много различных серверов (для telnet и других прикладных программ), то для программного обеспечения, взаимодействующего с сетью, должен быть предусмотрен способ определения сервера, который будет обрабатывать данный запрос. Эта задача решается путем присвоения каждому серверу конкретного номера порта в идентификационных целях. Когда сервер начинает работать, то сообщает сетевому программному обеспечению, какой порт отвечает за обслуживание4. Если программа-клиент хочет воспользоваться какой-либо услугой, то должна указать и адрес (для входа в конкретный компьютер), и номер порта (для обращения к конкретной сервисной программе на этом компьютере). Часто используемым прикладным программам присвоены стандартные номера портов; например, программе telnet назначен порт 235.

Рассмотрим применение стандартной программы-клиента в другом приложении. Для этого следует использовать другой номер порта. Частные прикладные программы должны использовать неназначенный порт, применение которого согласовано клиентом и сервером. Если мы создадим нестандартную программу-сервер и дадим ей указание использовать какой-то неиспользуемый порт (например, порт 10001), а затем предложим пользователям "соединять" свои telnet программы-клиенты с портом 10001 на нашем компьютере, то задача выполнена.

Фактически существует много таких прикладных программ, размещенных в Internet. В случаях, когда прикладные программы используют нестандартные порты, в документации о данной прикладной программе должно появиться сообщение, какой порт использовать. Например, обратимся к программе Weather Underground, которая предоставляет доступ к метеорологической информации, относящейся к американским городам. В "Каталоге ресурсов" приведена следующая ссылка на эту программу:

Access: telnet madlab.sprl.umich.edu 3000

Эта строка сообщает следующее: "подключитесь к madlab.sprl.umich.edu посредством программы telnet, но не используйте порт по умолчанию (23); вместо него используйте порт 3000". Нестандартный номер порта просто добавлен в конец команды telnet. Приведем реальный сеанс с доступом к этой сервисной программе:

% telnet madlab.sprl.umich.edu 3000

Trying 141.212.196.79...

Connected to madlab.sprl.umich.edu.

Escape character is '^]'.

-------------------------------------------------------------

* University of Michigan

* WEATHER UNDERGROUND

-------------------------------------------------------------

* College of Engineering, University of Michigan

* Department of Space Sciences

* and Space Sciences

* Ann Arbor, Michigan 48109-2143

* comments: sdm@madlab.sprl.umich.edu ,

* With Help from:

* The UNIDATA Project,

* University Corporation for Atmospheric Research

* Boulder, Colorado 80307-3000

*

-------------------------------------------------------------

* NOTE:> New users, select option "H" on the main menu:

* H) Help and information for new users

*

-------------------------------------------------------------

Press Return for menu, or enter 3 letter city code:

Рассматривая этот сеанс, следует отметить два момента. Во-первых, вместо получения обычного приглашения на вход в систему Вы оказались в прикладной программе. У каждого нестандартного сервера имеется своя собственная система команд. Для того чтобы научиться их использовать, следует внимательно читать выводимую на экран информацию. Большинство программ-серверов сообщают Вам в самом начале, как следует выходить из них и как обращаться к их встроенной подсказке. В данном случае необходимо нажать [Enter] для перехода в главное меню, а затем — клавишу [Н] для вывода справки.

Во-вторых, поскольку приглашение на вход в систему выдано не было, то и вводить имя и пароль Вам не пришлось. Для того чтобы воспользоваться этой услугой, Вам даже не нужно иметь свой вход на компьютере madlab.sprl.umich.edu. Конечно, у нестандартного сервера может быть своя процедура регистрации; иногда для пользования услугой нужно зарегистрироваться в каком-то органе, который может выставить Вам счет за пользование данной программой. Однако многие услуги общедоступны и предоставляются бесплатно.

В рассматриваемом примере мы использовали протокол TELNET для подсоединения к нестандартному порту и, следовательно, для доступа к специальной сервисной программе. На практике Вы встретите оба описанных выше решения: нестандартные TELNET-серверы, использующие стандартный порт (порт 23) и, следовательно, выделенные под конкретную задачу, и нестандартные серверы, использующие нестандартный порт. Наш "Каталог ресурсов" и другие базы данных о сетевых ресурсах подскажут Вам, когда нужно будет использовать нестандартный порт.

Установление соединения через другой порт позволяет использовать программу telnet еще в одном качестве — в роли другого клиента. Этот метод используется главным образом для отладки связи клиент-сервер при разработке прикладных программ. Если бы у меня возникли осложнения с программой чтения телеконференций (более подробно об этих конференциях мы расскажем позже) и я не знал, чем обусловлена проблема (программа-клиент ли виновата или программа-сервер), то мог бы обойти программу-клиент на своем компьютере с помощью следующей команды:

% telnet sonne.uiuc.edu 119

Эта команда соединяет меня непосредственно с информационным сервером на компьютере sonne, минуя TELNET-сервер; 119 — это порт, который использует информационный сервер. В этой точке я мог бы ввести команды NNTP (протокола распространения новостей) для запуска сервера и посмотреть, работает ли он нормально.