Основы программирования в Linux
Шрифт:
Для полноты аналогии, упомянутой в начале главы, в табл. 15.5 приведены параллели между соединениями на базе сокетов и телефонными переговорами.
Таблица 15.5
| Телефон | Сетевые сокеты |
|---|---|
| Звонок в компанию по номеру 555-0828 | Подключение к IP-адресу 127.0.0.1 |
| Ответ на звонок секретаря приемной | Установка соединения с remote host |
| Просьба соединить с финансовым отделом. | Маршрутизация с помощью заданного порта (9734) |
| Ответ на звонок администратора финансового отдела | Вызов select вернул управление серверу |
| Звонок переадресован свободному менеджеру по работе с корпоративными заказчиками | Сервер вызывает accept , создавая новый сокет на добавочный номер 456 |
Дейтаграммы
В этой главе мы сосредоточились на программировании приложений, поддерживающих связь со своими клиентами с помощью TCP-соединений на базе сокетов. Существуют ситуации, в которых затраты на установку и поддержку соединения с помощью сокетов излишни.
Хорошим примером может служить сервис
Сервис
Сервисы, предоставляемые по UDP-протоколу, применяются в тех случаях, когда клиенту нужно создать короткий запрос к серверу, и он ожидает единственный короткий ответ. Если стоимость времени процессора достаточно низкая, сервер способен обеспечить такой сервис, обрабатывая запросы клиентов по одному и разрешая операционной системе хранить очередь входящих запросов. Такой подход упрощает программирование сервера.
Поскольку UDP — не дающий гарантий сервис, вы можете столкнуться с потерей вашей дейтаграммы или ответа сервера. Если данные важны для вас, возможно, придется тщательно программировать ваших UDP-клиентов, проверяя ошибки и при необходимости повторяя попытки. На практике в локальных сетях UDP-дейтаграммы очень надежны.
Для доступа к сервису, обеспечиваемому UDP-протоколом, вам следует применять системные вызовы
Далее приведена модифицированная версия программы getdate.c, которая получает дату с помощью сервиса UDP-дейтаграмм. Изменения по сравнению с предыдущей версией выделены цветом.
Гримуар темного лорда II
2. Гримуар темного лорда
Фантастика:
фэнтези
попаданцы
аниме
рейтинг книги
Фауст
50. Библиотека всемирной литературы
Поэзия:
драматургия
рейтинг книги
Я царь. Книга XXVIII
28. Дорогой барон!
Фантастика:
боевая фантастика
аниме
попаданцы
рейтинг книги
Римские рассказы
Проза:
современная проза
рейтинг книги