Атрибути сокету

У четвертому виданні популярного керівництва надано основи програмування в операційній системі Linux. Розглянуті: використання бібліотек C/C++ та стандартних засобів розробки, організація системних викликів, файлове введення/виведення, взаємодія процесів, програмування засобами командної оболонки, створення графічних інтерфейсів за допомогою інструментальних засобів GTK+ або Qt, застосування сокетів та ін. Описана компіляція програм, їх компонування з бібліотеками та робота з термінальним введенням/виводом. Наведено прийоми написання додатків у середовищах GNOME® та KDE®, зберігання даних з використанням СУБД MySQL® та налагодження програм. Книга добре структурована, що робить навчання легким та швидким.
Для Linux-програмістів-початківців
Основи програмування в Linux
Атрибути сокету
Розділи на цій сторінці:
Для того щоб до кінця зрозуміти системні виклики, що застосовувалися в розглянутому прикладі, необхідно дізнатися про організацію мережі в системах UNIX.
Домени сокетів
Примітка
Сервери чекають на запити на з'єднання від певних клієнтів. У добре відомих сервісів є виділені номери портів, які використовуються всіма машинами під керуванням ОС Linux та UNIX. Зазвичай, але не завжди ці номери менше 1024. Прикладами можуть бути буфер друку принтера (515), rlogin (513), ftp (21) і httpd (80). Останній із названих – стандартний порт для Web-серверів. Зазвичай номери портів менші 1024 зарезервовані для системних сервісів і можуть обслуговуватися процесами з правами суперкористувача. Стандарт X/Open визначає в заголовному файлі netdb.h константу IPPORT_RESERVED для визначення найбільшого номера зарезервованих портів.
Крім того, можуть застосовуватись іінші домени: AF_ISO для мереж на основі стандартних протоколів ISO та AF_XNS для Xerox Network System (мережева система Xerox). У цій книзі ми їх не обговорюватимемо.
Типи сокетів
У домену сокетів може бути кілька способів обміну даними, кожен з яких може мати різні характеристики. У разі сокетів домену AF_UNIX проблеми не виникають, тому вони забезпечують надійний двонаправлений обмін даними. У доменах мережі необхідно знати характеристики базової мережі та їх вплив на різні механізми передачі даних.
Інтернет-протоколи надають два механізми передачі даних з різними рівнями обслуговування:потокитадейтаграми.
Потокові сокети
Потокові сокети (у чомусь подібні до стандартних потоків введення/виводу) забезпечують з'єднання, що являє собою послідовний і надійний двонаправлений потік байтів. Отже, гарантується, що без зазначення помилки дані не будуть втрачені, продубльовані або переупорядковані. Повідомлення великого обсягу фрагментуються, передаються і знову збираються докупи. Це нагадує файловий потік, який приймає більші обсяги даних і поділяє їх на менші блоки для запису на фізичний диск. У потокових сокетів передбачувана поведінка.
Потокові сокети, що описуються типом SOCK_STREAM, реалізовані в домені AF_INET з'єднаннями на базі протоколів TCP/IP. Крім того, це тип сокетів і в домені AF_UNIX . У цьому розділі ми зосередимося на сокетах типу SOCK_STREAM , оскільки вони найчастіше застосовуються під час програмування мережевих додатків.