Содержание
- Введение
- Стек сетевых протоколов
- Протоколы IPv4 и IPv6
- Протокол TCP
- Протокол UDP
- DNS
- Адреса
- Адреса хостов
- Работа с DNS
- Адреса портов
- Работа с TCP
- Клиентский сокет
- Создание
- Управление ресурсами
- Закрытие части соединения
- Серверный сокет
- Создание
- Прием соединений
- Работа с UDP
- Датаграммы
- Исходящие
- Входящие
- Сокеты
- Создание
- Отправка и прием данных
- URI и URL
- URI
- Понятие об URI
- Структура URI
- Сравнение URI
- URL
- Понятие об URL
- Структура URL
- Сравнение URL
- Соединения
- Создание соединения
- Жизненный цикл соединения
- Быстрое установление соединения
- Поддержка протоколов
- Работа с HTTP
- Клиент
- Сервер
Домашнее задание 10. HelloUDP
-
Реализуйте клиент и сервер, взаимодействующие по UDP.
-
Класс HelloUDPClient должен отправлять запросы
на сервер, принимать результаты и выводить их на консоль.
-
Аргументы командной строки:
- имя или ip-адрес компьютера, на котором запущен сервер;
- номер порта, на который отсылать запросы;
- префикс запросов (строка);
- число параллельных потоков запросов;
- число запросов в каждом потоке.
-
Запросы должны одновременно отсылаться в указанном числе потоков.
Каждый поток должен ожидать обработки своего запроса и выводить
сам запрос и результат его обработки на консоль.
Если запрос не был обработан, требуется послать его заново.
-
Запросы должны формироваться по схеме
<префикс запросов><номер потока>_<номер запроса в потоке>.
-
Класс HelloUDPServer должен принимать задания, отсылаемые
классом HelloUDPClient и отвечать на них.
-
Аргументы командной строки:
- номер порта, по которому будут приниматься запросы;
- число рабочих потоков, которые будут обрабатывать запросы.
-
Ответом на запрос должно быть Hello, <текст запроса>.
-
Несмотря на то, что текущий способ получения ответа по запросу
очень прост, сервер должен быть рассчитан на ситуацию,
когда этот процесс может требовать много ресурсов и времени.
-
Если сервер не успевает обрабатывать запросы, прием запросов может
быть временно приостановлен.