- Клиент и сервер, взаимодействующие по UDP.
- Класс
HelloUDPClientотправляет запросы на сервер, принимает результаты и выводит их на консоль.- Аргументы командной строки:
- имя или ip-адрес компьютера, на котором запущен сервер;
- номер порта, на который отсылать запросы;
- префикс запросов (строка);
- число параллельных потоков запросов;
- число запросов в каждом потоке.
- Запросы одновременно отсылаются в указанном числе потоков. Каждый поток ожидает обработки своего запроса и выводит сам запрос и результат его обработки на консоль. Если запрос не был обработан, он посылается заново.
- Запросы формируются по схеме
<префикс запросов><номер потока>_<номер запроса в потоке>.
- Аргументы командной строки:
- Класс
HelloUDPServerпринимает задания, отсылаемые классомHelloUDPClientи отвечает на них.- Аргументы командной строки:
- номер порта, по которому будут приниматься запросы;
- число рабочих потоков, которые будут обрабатывать запросы.
- Ответ на запрос:
Hello, <текст запроса>. - Если сервер не успевает обрабатывать запросы, прием запросов может быть временно приостановлен.
- Аргументы командной строки:
- Клиент и сервер, взаимодействующие по UDP, используется только неблокирующий ввод-вывод.
- Класс
HelloUDPNonblockingClientимеет функциональность аналогичнуюHelloUDPClient, но без создания новых потоков. - Класс
HelloUDPNonblockingServerимеет функциональность аналогичнуюHelloUDPServer, но все операции с сокетом производятся в одном потоке. - В реализации нет активных ожиданий, в том числе через
Selector.