Содержание
- Буферы
- Операции
- Чтение и запись
- Байтовые буферы
- Типизированные буферы
- Каналы
- Иерархия каналов
- Байтовые каналы
- Файловые каналы
- Файлы отображаемые в память
- Блокировки
- Сетевые каналы
- Неблокирующий ввод-вывод
- Асинхронные каналы
Домашнее задание 12. HelloNonblockingUDP
-
Реализуйте клиент и сервер, взаимодействующие по UDP,
используя только неблокирующий ввод-вывод.
-
Класс
HelloUDPNonblockingClient
должен
иметь функциональность аналогичную HelloUDPClient
,
но без создания новых потоков.
-
Класс
HelloUDPNonblockingServer
должен
иметь функциональность аналогичную HelloUDPServer
,
но все операции с сокетом должны производиться в одном потоке.
-
В реализации не должно быть активных ожиданий,
в том числе через
Selector
.
-
Обратите внимание на выделение общего кода старой и новой реализации.
- Бонусный вариант.
Клиент и сервер могут перед началом работы выделить
O(число рабочих потоков) памяти.
Выделять дополнительную память во время работы запрещено.