Анимация
JavaScript


Главная  Библионтека 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 [ 95 ] 96 97 98 99 100 101 102 103

• Интерфейсы к другим языкам программирования и средства эмуляции этих языков.

• Имена файлов, файловые системы и блокировки файлов (см. также дескрипторы файлов).

• Обработка строк, обработка текстов, синтаксический анализ и поиск.

• Обработка опций, аргументов, параметров и файлов конфигурации.

• Интернационализация и локализация.

• Аутентификация, защита и шифрование.

• World Wide Web, HTML, HTTP, CGI, MIME.

• Серверные утилиты и демоны.

• Архивирование, сжатие и преобразование.

• Изображения, манипулирование картами пикселей и растрами, рисование и построение графиков.

• Электронная почта и телеконференции Usenet.

• Утилиты управления потоком (обратные вызовы и исключительные ситуации).

• Утилиты для работы с дескрипторами файлов, дескрипторами каталогов и потоками ввода-вывода.

• Модули для Microsoft Windows.

• Прочие модули.



Сетевые клиенты

Немногие компьютеры (и, соответственно, работающие на них пользователи) остаются в изоляции от остального компьютерного мира. Сети, когда-то бывщие достоянием в основном государственных научно-исследовательских лабораторий и факультетов вычислительной техники крупнейщих университетов, сейчас доступны практически каждому - даже пользователю домащнего компьютера с модемом, устанавливающему по коммутируемой линии соединение с провайдером с помощью протоколов SLIP или РРР. Сейчас сети больще чем когда-либо используются в повседневной работе организациями и пользователями всех слоев общества - для обмена электронной почтой, планирования встреч, управления распределенными базами данных, доступа к информации предприятий, получения прогнозов погоды, чтения текущих новостей, разговоров с собеседниками из другого полуща-рия, рекламирования продуктов и фирм через Web и т.д.

У всех этих приложений есть одна общая черта: они работают на основе TCP, фундаментального протокола, который обеспечивает взаимодействие между собой всех сетей, входящих в Internet*. И мы имеем в виду не только Internet. Не считая брандмауэров, базовая технология везде одна, независимо от того, устанавливается соединение по Internet, соединение между офисами компании или соединение между кухней и подвалом ващего дома. Это удобно: для того чтобы ориентироваться во всех применениях Internet/intranet, вы должны изучить только одну технологию.

Как же с помощью сети позволить приложению, работающему на одной мащине, общаться с другим приложением, которое может функционировать на соверщенно другой мащине? Средствами Perl это сделать очень легко, но сначала вам, наверное, нужно немного узнать о том, как работает сеть на базе протокола TCP.

На самом деле коммуникации в Internet обеспечиваются протоколом IP (Internet Protocol), а протокол TCP (Transmition Control Protocol) является протоколом более высокого уровня.



Даже если вы еще ни разу не работали в компьютерной сети, вы уже знаете о системе с установлением соединений: это - телефонная сеть. И пусть вас не смущают причудливые словосочетания вроде "программирование систем клиент/сервер". Видя слово "клиент", читайте "вызывающий абонент", а видя слово "сервер" - читайте "отвечающий абонент".

Звоня кому-то по телефону, вы выступаете в роли клиента. Тот, кто поднимает трубку на другом конце линии, является сервером.

Программисты, имеющие опыт работы на С, возможно, знакомы с гнездами (sockets) . Гнездо - это интерфейс к сети в том же самом смысле, что и дескриптор файла - это интерфейс к файлам в файловой системе. В частности, для тех простых программ, которые мы продемонстрируем ниже, вы можете пользоваться дескриптором гнезда так же, как дескриптором файла*.

Вы можете читать данные из гнезда, записывать в него данные, а также выполнять обе эти операции. Это объясняется тем, что гнездо - особый вид двунаправленного дескриптора файла, представляющего сетевое соединение. В отличие от обычных файлов, созданных посредством функции open, гнезда создаются с помощью низкоуровневой функции socket.

Давайте выжмем еще немного из нащей телефонной модели. Звоня на коммутатор больщой компании, вы можете попросить соединить вас с конкретным отделом по названию (например, с отделом кадров) или по номеру (например, "дополнительный 213"). Представьте, что каждый сервис, работающий на компьютере,- это отдел большой корпорации. Иногда сервис имеет несколько имен, например http и www, но только один номер, например 80. Этот номер, связанный с именем сервиса, называется его портом. С помощью Perl-функций getservbyname и getservbyport можно найти имя сервиса по номеру его порта и наоборот. Вот некоторые стандартные ТСР-сервисы и номера их портов:

Сервис

Порт

Назначение

echo

Принимает все вводимые данные и воспроизводит их

discard

Принимает все, но ничего не возвращает

daytime

Возвращает текущую дату и местное время

Сервер для обработки запросов пересылки файлов

telnet

Сервер для интерактивных telnet-сеансов

smtp

Простой протокол пересылки почты; демон-почтальон

time

Возвращает число секунд, прошедших с начала 1900-го года (в двоичном формате)

http

Сервер World Wide Web

nntp

Сервер телеконференций

Почти так же; поиск по гнезду невозможен.



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 [ 95 ] 96 97 98 99 100 101 102 103