Книга: UNIX: разработка сетевых приложений
Упражнения
Упражнения
1. Запустите клиент UDP, используя функцию dg_cli
, выполняющую широковещательную передачу (см. листинг 20.1). Сколько ответов вы получаете? Всегда ли ответы приходят в одном и том же порядке? Синхронизированы ли часы у узлов в вашей подсети?
2. Поместите несколько функций printf
в листинг 20.6 после завершения функции select
, чтобы увидеть, возвращает ли она ошибку или указание на готовность к чтению одного из двух дескрипторов. Возвращает ли ваша система ошибку EINTR
или сообщение о готовности канала к чтению, когда истекает время таймера alarm
?
3. Запустите такую программу, как tcpdump
, если это возможно, и просмотрите широковещательные пакеты в вашей локальной сети (команда tcpdump ether broadcast
). К каким наборам протоколов относятся эти широковещательные пакеты?