Skip to content

azzalie/computer-networks

Repository files navigation

Компьютерные сети

  1. Разработка классов на языке Java
  2. Разработка многопоточных приложений на языке Java
  3. Программирование UDP сокетов на языке Java
  4. Разработка клиент-серверных приложений на языке Java
  5. Разработка сервлетов на языке Java

Разработка классов на языке Java

Разработать класс, решающий квадратные уравнения. Коэффициенты квадратного трехчлена или передаются в качестве параметров класса, в противном случае вводятся из консоли. Коэффициенты могут быть любыми действительными числами.

Требования к решению:

  • В решении должен присутствовать класс "Квадратное уравнение"
  • В этом классе должны присутствовать два конструктора: первый с тремя параметрами, а второй с одним параметром - сканнером. В первом случае передаются коэффициенты уравнения и сохраняются в классе. Во втором случае коэффициенты нужно читать из полученного сканера. Допустимо во второй конструктор передавать сканер, из которого будут читаться коэффициенты.
  • Решение должно корректно обрабатывать случаи равенства нулю некоторых из коэффициентов уравнения, в частности a = 0
  • В отдельном классе должен быть метод public static void master, в котором создаются несколько экземпляров класса " Квадратное Уравнение", проверяющих все случаи.

QuadraticEquation

Разработка многопоточных приложений на языке Java

Разработать многопоточное приложение, позволяющее в интервале 100000000 - 400000000 найти все числа, которые одновременно делятся на 11, 13, 17 и 19. Выяснить различие во времени выполнения программы для случая одного потока и трех потоков. Предусмотрите возможность указать количество создаваемых потоков при запуске приложения. Убедиться, что количество найденных чисел не изменяется при изменении числа потоков.

MultithreadingApplication

Программирование UDP сокетов на языке Java

  1. Разработать клиент-серверное приложение с применением UDP сокетов. Клиентское приложение присылает серверу датаграмму с введённой пользователем строкой, а сервер в ответ отправляет "Received " и полученную строку.

Received

  1. Разработать приложение для отображения чата на основе протокола UDP. Клиент отправляет серверу свои сообщения в виде датаграмм. Сервер обрабатывает их и отображает их. Сообщения должны иметь следующий двоичный формат: Тип (1 байт), Длина имени (1 байт), Имя (Несколько байт в формате UTF-8). Тип 0 - зашел в чат, 1 - вышел из чата, 2 - отправил сообщение. В случае типа 2 после имени идёт Длина сообщения (1 байт) и само сообщение (несколько байт в формате UTF-8). Пакеты, не удовлетворяющие этому формату должны игнорироваться.
  2. Преобразовать приложение из прошлого пункта в одноранговый чат. Для этого код клиента и сервера из прошлого пункта нужно объединить в одно приложение. Использовать широковещательные сообщения, чтобы их получали все другие компьютеры в той же сети.

Chat

Разработка клиент-серверных приложений на языке Java

  1. Разработать сервер позволяющий сохранять пары ключ-значение. Клиенты могут просить сервер выполнить два типа запросов. В ответ на запрос "put ключ значение", сервер должен запомнить, что в ключу соответствует сообщение с текстом "значение". В ответ на запрос "get ключ" сохранённое значение должно отправляться клиенту. Рекомендуется использовать HashMap и BufferedReader. Для проверки использовать консольную программу telnet (при запуске указывайте 2 параметра: адрес и порт).

HashMapServer

  1. Реализовать задание "Разработка многопоточных приложений на языке Java" в клиент-серверном варианте, т.е. сервер запускается и ожидает подключения клиента(тов), клиент, подключившись к серверу, получает от него порядковый номер и интервал длинною в 100000000 и возвращает серверу найденные числа. Предусмотреть вывод консольных сообщений на стороне сервера.

Этапы выполнения задания:

  • Сервер ожидает подключения трёх клиентов. После подключения всех клиентов, каждому из них выдаётся порядковый номер и интервал. В консоль выводится, какой интервал каждому из них был выдан. После этого сервер ожидает от клиента результата и выводит найденные числа в консоль. Клиенты отключаются после отправки результата решенной задачи.
  • Сервер ожидает подключения трёх клиентов, но данные для обработки отправляются сразу же после подключения, а результат получается по мере готовности. Для этого необходимо создать на сервере для каждого подключенного клиента отдельный поток, который бы занимался передачей и приемом сообщений. Клиенты отключаются после отправки результата решенной задачи.

MultithreadingServer

  • Сервер ожидает подключения неограниченного количества клиентов. Клиенты не прекращают работу после решения одной задачи, а ожидают от сервера дополнительных задач. Необходимо предусмотреть возможность добавления задач на сервере через консоль в формате L R Step (найти количество чисел в отрезке [L,R], которые делятся на 11, 13, 17 и 19, разделив этот отрезок на куски длиной Step. Последний кусок может иметь меньшую длину).

MultithreadingQueueServer

Разработка сервлетов на языке Java

Разработать сервлет, позволяющий получать от пользователя задачи, раздавать клиентам-рабочим задания, собирать его и отправлять полученный результат пользователю. Приложение должно включать в себя java сервлет и jsp страницу. На странице находится форма, в которой можно задать диапазон для поиска чисел, которые делятся на 11, 13 и 17. Результат работы формы отправляется на ту же страницу. Сервлет или просто перенаправляет вывод на jsp страницу, если запроса не было, или выводит все найденные числа под формой.

SimpleServlet

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages