Практическая работа №3 по дисциплине «Кроссплатформенная среда исполнения программного обеспечения» . Кроссплатформенная среда исполнения программного обеспечения
Скачать 0.84 Mb.
|
Отчет Практическая работа №3 по дисциплине «Кроссплатформенная среда исполнения программного обеспечения» Выполнил: Студент 2 курса Группа ББСО-01-19 Шифр 19Б0102 Гасанова Юлия Алексеевна Москва, 2021 Задание 1. Создайте сервер, который запрашивает пароль, затем открывает файл и посылает файл по сетевому соединению. Создайте клиента, который соединяется с этим сервером, передает пароль, затем получает и сохраняет файл. Проверьте эту пару программ на вашей машине, используя localhost (IP адрес локального хоста 127.0.0.1, производимый при вызове InetAddress.getByName(null)). Задание 2. Владельцы котов часто пересылают друг другу информацию о своих любимцах. Воспользуйтесь классом Cat и возможностями сериализации, чтобы передать между двумя хостами (на локальной машине) данные по котам. Дополнительно реализовать возможность передачи сериализованных данных не одной, а целой семьи кошек. Tips: Пользователь, который посылает котиков, будет иметь класс sender.java, а получатель - receiver.java; Какого котика посылать решает sender путём ввода имени питомца в консоли; Задание 3. Реализовать подобие чата, с командой отправки котиков из задания 2. Пользователь может общаться в чате и после ввода определённой команды (например, /отправить_кота “имякота” “получатель”) программа понимает, какого кота надо сериализовать и отправить конкретному пользователю. Метод реализации Для реализации данных задач опишем классы Clinet и Server. Класс клиента содержит приватные статичные поля: порт, сокет клиента, чтение буффера данных и ввод. Класс обязательно должен обрабатывать исключение, поэтому функция main throws IOException. Инициализируем сокет клиента, передов в качестве параметров хост и порт. Инициализируем систему считывания данных с консоли и считывание данных из сервера и загрузку на него с помощью класса BufferReader и BufferWriter соответственно. В вечном цикле будем обрабатывать и выводить все собщения. В классе Server указываем поля такие же, как и в классе Client, за исключением Soket, вместо него будет ServerSocet. После Поднятия сервера вызовом new ServerSoket(port) ожидаем получение данных со стороны сокета пользователя, после этого запускаем потоки ввода и вывода, и в вечном цикле обрабатываем все сообщения со стороны клиента. Таким образом, созданный нами чат клиен-сервер успешно работает. Рис. 1 – Класс client. Рис. 2 – Класс Server. Рис. 3 – Вывод client. Рис. 4 – Вывод Server. |