Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
38
Добавлен:
07.02.2016
Размер:
836.1 Кб
Скачать

1.2.3 Приклад 3

У розподіленому додатку - приклад 3, реалізований віддалений метод func(), що виконує додавання всіх елементів масиву, сформованого в клієнтському додатку. Масив складається з п'яти випадкових чисел, що лежать у діапазоні від 0 до 9.

У результаті роботи додатка як елементи масиву, так і їх сума виводяться на екран клієнтського додатка.

Для створення та запуску розподіленого java-додатка (приклад 3), виконайте наступні кроки:

  1. Використовуючи код, наведений нижче (п.1.2.3), створіть java-файли -TCPServer.java та TCPClient.java

  2. Відкомпілюйте створені java-файли за допомогою команди:

> javac *.java

  1. Запустіть TCP-сервер за допомогою команди:

> java TCPServer

  1. Запустіть 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 у числові типи даних, використовуйте методи наведені в Додатку А.

Соседние файлы в папке [КОМП СИСТЕМЫ]