Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lections (1).doc
Скачиваний:
22
Добавлен:
12.02.2016
Размер:
1.43 Mб
Скачать

Інша інформація Дескриптор файлу

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

* Для чтения двоичных файлов в больших кусках.

* Для чтения всего файла в ядро перед его синтаксическим анализом.

* Для выполнения операций отличных от передачи данных, которая может быть выполнена только с дескриптором.

* Для передачи дескриптора в дочерний процесс.

Сокет - обобщенный межпроцессорный канал связи. Подобно каналу, сокет представляется как дескриптор файла. Но, в отличие от каналов, сокеты поддерживают ссылку между несвязанными процессами, и даже между процессами, выполняющимися на различных машинах, которые связываются по сети. Сокеты – первичный способ связи с другими машинами; telnet, rlogin, ftp, переговоры, и другие сетевые программы используют сокеты.

11.1 Понятие Сокета

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

Вы должны также выбрать именное пространство для наименования сокета. Имя сокета ('адрес') значимо только в контексте частного именного пространства. Фактически, даже тип данных, используемый для имени сокета может зависеть от именного. Именные пространства также называются 'областями', но мы избегаем этого слова, поскольку оно может быть спутано с другим использованием того же самого термина. Каждое именное пространство имеет символическое имя, которое начинается с 'PF_'. Соответствующее символическое имя, начинающееся с 'AF_' обозначает формат адреса для этого именного пространства..

В заключение Вы должны выбрать протокол, чтобы установить связь. Протокол определяет какой механизм низкого уровня используется, чтобы передавать и получить данные. Каждый протокол допустим для определенного именного пространства и стиля связи; именное пространство иногда называется совокупностью протоколов из-за этого имена именных пространств начинаются с 'PF_'.

Каждый формат адреса имеет символическое имя, которое начинается с "AF_ ". Каждый из них соответствует "PF_ " символу, который обозначает соответствующее именное пространство. Вот список названий форматов адресов:

AF_FILE Обозначает формат адреса, который идет с именным пространством файла. (PF_FILE - имя этого именного пространства.), для уточнения информации относительно этого формата адреса.

AF_UNIX Это синоним AF_FILE, для совместимости. (PF_UNIX - аналогично синоним для PF_FILE.)

AF_INET Обозначает формат адреса, который идет в именном пространстве Internet. (PF_INET - имя этого именного пространства.)

AF_UNSPEC Не обозначает никакой специфический формат адреса. Он используется только в редких случаях, когда необходимо очистить снаружи заданный по умолчанию адрес адресата от "соединенного" датаграмного сокета.

Соответствующий символ указателя именного пространства PF_UNSPEC существует для законченности, но нет никакой причины

использовать его в программе.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]