Client and server communicating over UDP. Implementations with blocking and non-blocking input-output.
Java 100.00%
hello's Introduction
Hello
HelloUDP
Клиент и сервер, взаимодействующие по UDP.
Класс HelloUDPClient отправляет запросы на сервер, принимает результаты и выводит их на консоль.
Аргументы командной строки:
имя или ip-адрес компьютера, на котором запущен сервер;
номер порта, на который отсылать запросы;
префикс запросов (строка);
число параллельных потоков запросов;
число запросов в каждом потоке.
Запросы одновременно отсылаются в указанном числе потоков. Каждый поток ожидает обработки своего запроса и выводит сам запрос и результат его обработки на консоль. Если запрос не был обработан, он посылается заново.
Запросы формируются по схеме <префикс запросов><номер потока>_<номер запроса в потоке>.
Класс HelloUDPServer принимает задания, отсылаемые классом HelloUDPClient и отвечает на них.
Аргументы командной строки:
номер порта, по которому будут приниматься запросы;
число рабочих потоков, которые будут обрабатывать запросы.
Ответ на запрос: Hello, <текст запроса>.
Если сервер не успевает обрабатывать запросы, прием запросов может быть временно приостановлен.
HelloNonblockingUDP
Клиент и сервер, взаимодействующие по UDP, используется только неблокирующий ввод-вывод.
Класс HelloUDPNonblockingClient имеет функциональность аналогичную HelloUDPClient, но без создания новых потоков.
Класс HelloUDPNonblockingServer имеет функциональность аналогичную HelloUDPServer, но все операции с сокетом производятся в одном потоке.
В реализации нет активных ожиданий, в том числе через Selector.