Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛабыПоЛакальнымСетям.docx
Скачиваний:
2
Добавлен:
21.11.2019
Размер:
1.71 Mб
Скачать

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

Основы сокетов

При создании сокета, необходимо определить три параметра: стиль взаимодействия, пространство имен, и протокол. Стиль взаимодействия контролирует, как сокет обрабатывает передаваемые данные, и определяет количество партнеров взаимодействия. Через сокеты данные передаются блоками (пакетами). Стиль взаимодействия определяет, как эти пакеты будут обработаны и как они передаются от отправителя к получателю.

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

Стили дейтаграмм не гарантируют доставки и правильного порядка прибытия. Пакеты могут быть потеряны или переупорядочены в пути из-за сетевых ошибок. Каждый пакет должен быть помечен его адресатом, и нет гарантии, что он будет доставлен. Система гарантирует только "максимальные усилия", поэтому пакеты могут исчезнуть или прибыть в различном порядке. Сокет стиля дейтаграммы ведет себя сходно с почтой. Отправитель определяет адрес получателя для каждого индивидуального сообщения. Пространство имен определяет, как записаны адреса сокета (socket addresses). Адрес сокета идентифицирует один конец подключения сокета. Например, адреса сокета в локальном пространстве имен являются обычными именами файлов. В пространстве имен Интернет адрес сокета состоит из Интернет адреса (IP адрес) главного компьютера, присоединенного к сети и номера порта, который идентифицирует сокет среди множества сокетов на том же главном компьютере.

Протокол определяет, как передаются данные. Существуют следующие виды протоколов: TCP/IP , первичные сетевые протоколы, используемые Интернетом; сетевой протокол AppleTalk ; локальный UNIX протокол взаимодействия. Не все комбинации стилей, пространств имен и протоколов поддерживаются.

Системные вызовы

Виды системных вызовов: socket - создать сокет closes - уничтожить сокет

connect - создать соединение между двумя сокетами

bind - привязать сокет к порту сервера

listen - настройка сокета для принятия подключений

accept - принять запрос на соединение и создать сокет для процесса взаимодействия

Сокеты представляются дескрипторами файлов.

Создание и уничтожение сокетов

С помощью функций socket и close создаются и уничтожаются сокеты. При создании сокета, необходимо определить три параметра сокета: пространство имен, стиль взаимодействия и протокол.

Для указания пространства имен используются константы. с PF_ (сокращение "семейство протокола"). Например, PF_LOCAl гиш PF_UNIX определяют локальное пространство имен, и PFINET оптеле.т -ет Интернет пространство имен.

Второй параметр, стиль взаимодействия, представляет собой константу, начинающихся с SOCK_ . SOCKSTREAM определяет стиль взаимодействия соединения, SOCKDGRAM - стиль дейтаграммы.

Третий параметр, протокол, определяет механизм нижнего уровня для передачи и получения данных. Для каждой комбинации пространство имен - стиль взаимодействия существует свой протокол.

Для каждой пары существует лучший протокол, поэтому можно указать О, что соответствует этому протоколу. Если команда socket выполнена успешно, в качестве результата возвращается дескриптор файла для сокета. С ттпмоттткю команд read и write . можно читать и записывать данные в сокет.

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