
- •Міністерство освіти і науки україни
- •1 Лабораторна робота №1 java-сокети
- •1.1 Теоретичні відомості
- •1.1.1 Загальні відомості про сокети
- •1.1.2 Програмні засоби Java для роботи з сокетами
- •1.2 Приклади розподілених java-додатків на основі сокетів
- •1.2.1 Приклад 1
- •1.2.2 Приклад 2
- •1.2.3 Приклад 3
- •1.3 Завдання до лабораторної роботи
- •1.3.1 Завдання 1
- •1.3.2 Завдання 2
- •1.3.3 Завдання 3
- •Завдання
- •1.4 Контрольні питання
- •1.5 Зміст письмового звіту
- •2 Лабораторна робота №2 java rmi
- •2.1 Теоретичні відомості про Java rmi
- •2.1.1 Загальні відомості
- •2.1.2 Рівень заглушок
- •2.1.3 Рівень віддаленого посилання
- •2.1.4 Транспортний рівень
- •2.1.5 Віддалені об'єкти
- •2.1.6 Архітектура Java rmi
- •2.1.7 Створення віддаленого інтерфейсу
- •2.2 Завдання до лабораторної роботи
- •2.2.1 Створення віддаленого інтерфейсу
- •2.2.2 Створення реалізації віддаленого інтерфейсу
- •2.2.3 Створення стаба й скелетона
- •2.2.4 Створення серверного додатка
- •2.2.5 Створення клієнтського додатка
- •2.2.6 Запуск розподіленого додатка
- •2.2.7 Завдання 1 – створення rmi-додатка
- •2.2.8 Завдання 2 – створення власного rmi-додатка
- •2.2.9 Завдання 3 – створення власного rmi-додатка
- •2.2.10 Завдання 4 – самостійна робота за індивідуальним варіантом
- •2.3 Контрольні питання
- •2.4 Зміст письмового звіту
- •Література для додаткового вивчення
- •Додаток а Java-методи для перетворення рядків (тип String) у числові типи даних
- •Додаток б
- •Приклад використання деяких математичних методів Java:
1.2.3 Приклад 3
У розподіленому додатку - приклад 3, реалізований віддалений метод func(), що виконує додавання всіх елементів масиву, сформованого в клієнтському додатку. Масив складається з п'яти випадкових чисел, що лежать у діапазоні від 0 до 9.
У результаті роботи додатка як елементи масиву, так і їх сума виводяться на екран клієнтського додатка.
Для створення та запуску розподіленого java-додатка (приклад 3), виконайте наступні кроки:
Використовуючи код, наведений нижче (п.1.2.3), створіть java-файли -TCPServer.java та TCPClient.java
Відкомпілюйте створені java-файли за допомогою команди:
> javac *.java
Запустіть TCP-сервер за допомогою команди:
> java TCPServer
Запустіть TCP-клієнта за допомогою команди:
> java TCPClient
У результаті виконання програм приклада 3 на консоль клієнта буде виведені всі елементи масиву з п'яти випадкових чисел та їхня сума.
Код TCP-сервера має вигляд:
import java.net.*;
import java.io.*;
public class TCPServer {
static int my_array []=new int [5];
static int sum=0;
public static int func()
{
for(int i=0;i<5;i++)
sum=sum+my_array [i];
return sum;
}
public static void main(String[] args)
{
try{
ServerSocket socket = new ServerSocket(1666);
while (true)
{
Socket client = socket.accept();
DataInputStream in =
new DataInputStream(client.getInputStream());
for(int i=0;i<5;i++)
my_array[i]=
Integer.parseInt(in.readLine());
PrintStream out =
new PrintStream(client.getOutputStream());
out.println("Sum of array = "+ func());
sum=0;
in.close(); out.close(); client.close();
}
}
catch (Exception e) {System.out.println(e);}}}
Код TCP-клієнта має вигляд:
import java.net.*;
import java.io.*;
public class TCPClient {
public static void main(String[] args)
{
int my_array []=new int [5];
try{
Socket socket = new Socket("localhost",1666);
PrintStream out =
new PrintStream(socket.getOutputStream());
System.out.println("Array");
for(int i=0;i<5;i++)
{
my_array[i]=(int)(10.0 * Math.random());
out.println(my_array[i]);
System.out.println(my_array[i]);
}
DataInputStream dt =
new DataInputStream(socket.getInputStream());
String res = null;
while ((res=dt.readLine())!=null)
System.out.println(res);
out.close(); dt.close(); socket.close();
}
catch (Exception e) {System.out.println(e);}}}
1.3 Завдання до лабораторної роботи
1.3.1 Завдання 1
Створіть, запустіть та модифікуйте розподілений java-додаток на основі коду, наведеного в п.1.2.1.
При перевірці викладачем Ваш додаток замість рядка “Hello Student” повинне виводити на консоль повідомлення “Hello *****”, де ***** - Ваше прізвище.
1.3.2 Завдання 2
Створіть, запустіть та модифікуйте розподілений java-додаток на основі коду, наведеного в п.1.2.2.
При перевірці викладачем Ваш додаток замість суми двох цілих чисел повинен виводити на консоль добуток чотирьох речовинних чисел - три з яких мають довільне значення та передаються клієнтові з командного рядка, а четверте - має величину рівну номеру Вашого комп'ютера.
Примітка 1: Для перетворення аргументів командного рядка типу String у числові типи даних, використовуйте методи наведені в Додатку А.