Анимация
JavaScript
|
Главная Библионтека • Интерфейсы к другим языкам программирования и средства эмуляции этих языков. • Имена файлов, файловые системы и блокировки файлов (см. также дескрипторы файлов). • Обработка строк, обработка текстов, синтаксический анализ и поиск. • Обработка опций, аргументов, параметров и файлов конфигурации. • Интернационализация и локализация. • Аутентификация, защита и шифрование. • 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 можно найти имя сервиса по номеру его порта и наоборот. Вот некоторые стандартные ТСР-сервисы и номера их портов:
Почти так же; поиск по гнезду невозможен. 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 |