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

1.2 Приклади розподілених java-додатків на основі сокетів

1.2.1 Приклад 1

У розподіленому додатку - приклад 1, реалізований віддалений метод print(), що виводить рядок-повідомлення.

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

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

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

> javac *.java

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

> java TCPServer

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

> java TCPClient

У результаті виконання програм приклада 1 на консоль клієнта буде виведений рядок - Hello Student.

Код TCP-сервера має вигляд:

import java.net.*;

import java.io.*;

public class TCPServer {

public static String print()

{return "Hello Student";}

public static void main(String[] args)

{

try

{

ServerSocket socket =

new ServerSocket(1666);

while (true)

{

Socket client = socket.accept();

PrintStream out =

new PrintStream(client.getOutputStream());

out.println(print());

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) {

try{

Socket socket =

new Socket("localhost",1666);

DataInputStream dt =

new DataInputStream(socket.getInputStream());

String res = null;

while ((res=dt.readLine())!=null)

System.out.println(res);

dt.close(); socket.close();

}

catch(Exception e)

{

System.out.println(e);}}}

1.2.2 Приклад 2

У розподіленому додатку - приклад 2, реалізований віддалений метод func(), що виконує додавання двох цілих чисел.

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

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

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

> javac *.java

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

> java TCPServer

  1. Запустіть TCP-Клієнта за допомогою команди:

> java TCPClient 1 2

У результаті виконанні програм приклада 2 на консоль клієнта буде виведений рядок - Result = 3.

Код TCP-сервера має вигляд:

import java.net.*;

import java.io.*;

public class TCPServer {

public static long func(long a,long b)

{return a+b;}

public static void main(String[] args)

{try{

ServerSocket socket =new ServerSocket(1666);

while (true)

{

Socket client = socket.accept();

DataInputStream in =

new DataInputStream(client.getInputStream());

String req1 = in.readLine();

String req2 = in.readLine();

long num1=Long.parseLong(req1);

long num2=Long.parseLong(req2);

long sum=func(num1,num2);

PrintStream out =

new PrintStream(client.getOutputStream());

out.println("Result = "+ sum);

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)

{try{

Socket socket =new Socket("localhost",1666);

PrintStream out =

new PrintStream(socket.getOutputStream());

String number1 = args[0];

String number2 = args[1];

out.println(number1);

out.println(number2);

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);}}}

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