Основы программирования в Linux
Шрифт:
Поскольку для стандартных сервисов есть стандартный набор номеров портов, компьютеры могут легко соединяться друг с другом, не угадывая правильный номер порта. Локальный сервисы могут применять адреса нестандартных портов.
Домен в первом упражнении,
Кроме
У домена сокетов может быть несколько способов обмена данными, у каждого из которых могут быть разные характеристики. В случае сокетов домена
Интернет-протоколы предоставляют два механизма передачи данных с разными уровнями обслуживания: потоки и дейтаграммы.
Потоковые сокеты (в чем-то подобные стандартным потокам ввода/вывода) обеспечивают соединение, представляющее собой последовательный и надежный двунаправленный поток байтов. Следовательно, гарантируется, что без указания возникшей ошибки данные не будут потеряны, продублированы или переупорядочены. Сообщения большого объема фрагментируются, передаются и снова собираются воедино. Это напоминает файловый поток, который принимает большие объемы данных и делит их на меньшие блоки для записи на физический диск. У потоковых сокетов предсказуемое поведение.
Потоковые сокеты, описываемые типом
TCP/IP — сокращение для протоколов Transmission Control Protocol/Internet Protocol. Протокол IP — низкоуровневый протокол передачи пакетов, обеспечивающий выбор маршрута при пересылке данных в сети от одного компьютера к другому. Протокол TCP обеспечивает упорядочивание, управление потоком и ретрансляцию, гарантирующие полную и корректную передачу больших объемов данных или же сообщение о соответствующей ошибочной ситуации.
В отличие от потоковых дейтаграммные сокеты, описываемые типом
Дейтаграммные сокеты реализованы в домене
Дейтаграммы полезны для однократных запросов к информационным
На этом мы закончим обсуждение дейтаграмм, дополнительную информацию см. в разд. "Дейтаграммы" в конце данной главы.
Если низкоуровневый механизм передачи данных позволяет применять несколько протоколов, предоставляющих сокет требуемого типа, можно выбрать конкретный протокол или сокет. В этой главе мы сосредоточимся на сокетах сети UNIX и ее файловой системы, которые не требуют от вас выбора протокола, отличного от заданного по умолчанию.
Создание сокета
Системный вызов socket создает сокет и возвращает дескриптор, который может применяться для доступа к сокету:
Созданный сокет — это одна конечная точка линии передачи. Параметр
В табл. 15.1 приведены имена доменов.
Таблица 15.1
Домен | Описание |
---|---|
AF_UNIX | Внутренние для UNIX (сокеты файловой системы) |
AF_INET | Интернет-протоколы ARPA (Advanced Research Projects Agency, управление перспективных исследований и разработок) (сокеты сети UNIX) |
AF_ISO | Протоколы стандарта ISO (International Standards Organization, Международная организация по стандартизации) |
AF_NS | Протоколы сетевых систем Xerox |
AF_IPX | Novell-протокол IPX |
AF_APPLETALK | Appletalk DDS (Appletalk Digital Data Service) |
К наиболее популярным доменам сокетов относятся
Параметр сокета type задает характеристики обмена данными, применяемые для нового сокета. Возможными значениями могут быть