Обычно
клиент явно подсоединяется к слушателю,
после чего любое чтение или запись
через его файловый дескриптор будут
на самом деле передавать данные между
ним и сервером.
При
создании сокета, необходимо определить
три параметра: стиль взаимодействия,
пространство имен, и протокол. Стиль
взаимодействия контролирует, как сокет
обрабатывает передаваемые данные, и
определяет количество партнеров
взаимодействия. Через сокеты данные
передаются блоками (пакетами). Стиль
взаимодействия определяет, как эти
пакеты будут обработаны и как они
передаются от отправителя к получателю.
Стили
соединения гарантируют доставку всех
пакетов в том порядке, в каком они были
отправлены. Если во время передачи
пакеты были потеряны или доставлены в
неправильном порядке, получатель
автоматически отправляет запрос на их
повторную передачу. Стиль соединения
напоминает телефонный звонок: адреса
отправителя и получателя фиксируются
в начале соединения, при установке
подключения.
Стили
дейтаграмм не гарантируют доставки и
правильного порядка прибытия. Пакеты
могут быть потеряны или переупорядочены
в пути из-за сетевых ошибок. Каждый
пакет должен быть помечен его адресатом,
и нет гарантии, что он будет доставлен.
Система гарантирует только "максимальные
усилия", поэтому пакеты могут исчезнуть
или прибыть в различном порядке. Сокет
стиля дейтаграммы ведет себя сходно с
почтой. Отправитель определяет адрес
получателя для каждого индивидуального
сообщения. Пространство имен определяет,
как записаны адреса сокета (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
. можно читать и записывать данные
в сокет.Создание и уничтожение сокетов