- Разработка классов на языке Java
- Разработка многопоточных приложений на языке Java
- Программирование UDP сокетов на языке Java
- Разработка клиент-серверных приложений на языке Java
- Разработка сервлетов на языке Java
Разработать класс, решающий квадратные уравнения. Коэффициенты квадратного трехчлена или передаются в качестве параметров класса, в противном случае вводятся из консоли. Коэффициенты могут быть любыми действительными числами.
Требования к решению:
- В решении должен присутствовать класс "Квадратное уравнение"
- В этом классе должны присутствовать два конструктора: первый с тремя параметрами, а второй с одним параметром - сканнером. В первом случае передаются коэффициенты уравнения и сохраняются в классе. Во втором случае коэффициенты нужно читать из полученного сканера. Допустимо во второй конструктор передавать сканер, из которого будут читаться коэффициенты.
- Решение должно корректно обрабатывать случаи равенства нулю некоторых из коэффициентов уравнения, в частности
a = 0 - В отдельном классе должен быть метод
public static void master, в котором создаются несколько экземпляров класса " Квадратное Уравнение", проверяющих все случаи.
Разработать многопоточное приложение, позволяющее в интервале 100000000 - 400000000 найти все числа, которые одновременно делятся на 11, 13, 17 и 19. Выяснить различие во времени выполнения программы для случая одного потока и трех потоков. Предусмотрите возможность указать количество создаваемых потоков при запуске приложения. Убедиться, что количество найденных чисел не изменяется при изменении числа потоков.
- Разработать клиент-серверное приложение с применением UDP сокетов. Клиентское приложение присылает серверу датаграмму с введённой пользователем строкой, а сервер в ответ отправляет "Received " и полученную строку.
- Разработать приложение для отображения чата на основе протокола UDP. Клиент отправляет серверу свои сообщения в виде датаграмм. Сервер обрабатывает их и отображает их. Сообщения должны иметь следующий двоичный формат: Тип (1 байт), Длина имени (1 байт), Имя (Несколько байт в формате UTF-8). Тип 0 - зашел в чат, 1 - вышел из чата, 2 - отправил сообщение. В случае типа 2 после имени идёт Длина сообщения (1 байт) и само сообщение (несколько байт в формате UTF-8). Пакеты, не удовлетворяющие этому формату должны игнорироваться.
- Преобразовать приложение из прошлого пункта в одноранговый чат. Для этого код клиента и сервера из прошлого пункта нужно объединить в одно приложение. Использовать широковещательные сообщения, чтобы их получали все другие компьютеры в той же сети.
- Разработать сервер позволяющий сохранять пары ключ-значение. Клиенты могут просить сервер выполнить два типа запросов. В ответ на запрос "put ключ значение", сервер должен запомнить, что в ключу соответствует сообщение с текстом "значение". В ответ на запрос "get ключ" сохранённое значение должно отправляться клиенту. Рекомендуется использовать HashMap и BufferedReader. Для проверки использовать консольную программу telnet (при запуске указывайте 2 параметра: адрес и порт).
- Реализовать задание "Разработка многопоточных приложений на языке Java" в клиент-серверном варианте, т.е. сервер запускается и ожидает подключения клиента(тов), клиент, подключившись к серверу, получает от него порядковый номер и интервал длинною в 100000000 и возвращает серверу найденные числа. Предусмотреть вывод консольных сообщений на стороне сервера.
Этапы выполнения задания:
- Сервер ожидает подключения трёх клиентов. После подключения всех клиентов, каждому из них выдаётся порядковый номер и интервал. В консоль выводится, какой интервал каждому из них был выдан. После этого сервер ожидает от клиента результата и выводит найденные числа в консоль. Клиенты отключаются после отправки результата решенной задачи.
- Сервер ожидает подключения трёх клиентов, но данные для обработки отправляются сразу же после подключения, а результат получается по мере готовности. Для этого необходимо создать на сервере для каждого подключенного клиента отдельный поток, который бы занимался передачей и приемом сообщений. Клиенты отключаются после отправки результата решенной задачи.
- Сервер ожидает подключения неограниченного количества клиентов. Клиенты не прекращают работу после решения одной задачи, а ожидают от сервера дополнительных задач. Необходимо предусмотреть возможность добавления задач на сервере через консоль в формате L R Step (найти количество чисел в отрезке [L,R], которые делятся на 11, 13, 17 и 19, разделив этот отрезок на куски длиной Step. Последний кусок может иметь меньшую длину).
Разработать сервлет, позволяющий получать от пользователя задачи, раздавать клиентам-рабочим задания, собирать его и отправлять полученный результат пользователю. Приложение должно включать в себя java сервлет и jsp страницу. На странице находится форма, в которой можно задать диапазон для поиска чисел, которые делятся на 11, 13 и 17. Результат работы формы отправляется на ту же страницу. Сервлет или просто перенаправляет вывод на jsp страницу, если запроса не было, или выводит все найденные числа под формой.