Книга: UNIX: разработка сетевых приложений
Глава 28
Глава 28
28.1. Недоступными являются поле номера версии и поле следующего заголовка в IPv6. Поле полезной длины доступно либо как аргумент одной из функций вывода, либо как возвращаемое значений одной из функций ввода, но если требуется параметр увеличенного поля данных (jumbo payload option), сам параметр приложению недоступен. Заголовок фрагментации также недоступен приложению.
28.2. В конце концов приемный буфер клиентского сокета заполнится, и при этом функция демона write
будет заблокирована. Мы не хотим, чтобы это произошло, поскольку демон тогда перестанет обрабатывать данные на всех своих сокетах. Простейшим решением является следующее: демон должен сделать свой конец соединения домена Unix с клиентом неблокируемым. Для этого демон должен вызывать функцию write
вместо функции-обертки Write
и игнорировать ошибку EWOULDBLOCK
.
28.3. По умолчанию Беркли-ядра допускают широковещательную передачу через символьный сокет [128, с. 1057]. Поэтому параметр сокета SO_BROADCAST
необходимо определять только для UDP-сокетов.
28.4. Наша программа не проверяет адреса многоадресной передачи и не устанавливает параметр сокета IP_MULTICAST_IF
. Следовательно, ядро выбирает исходящий интерфейс, вероятно, просматривая таблицу маршрутизации для 224.0.0.1. Мы также не устанавливаем значение поля IP_MULTICAST_TTL
, поэтому по умолчанию оно равно 1, и это правильное значение.
- Взаимодействие с устройствами
- Вопросы, которые вы должны задать, и вещи, которые обязаны сделать
- Определение проекта
- Embedded Linux development using Eclipse
- Андрей Николаевич Колмогоров
- Элементы
- Что к чему в новом модуле
- Дайте мне повод подписаться
- Повреждение жесткого диска
- Определение брендинга
- Разработка программ обучения продажам
- Заголовки