Технология разработки телекоммуникационных сервисов. Лабораторная работа 3. Общий вариант

Состав работы

material.view.file_icon
material.view.file_icon
material.view.file_icon .classpath
material.view.file_icon .project
material.view.file_icon
material.view.file_icon org.eclipse.jdt.core.prefs
material.view.file_icon
material.view.file_icon
material.view.file_icon client.class
material.view.file_icon
material.view.file_icon server.class
material.view.file_icon worker.class
material.view.file_icon
material.view.file_icon
material.view.file_icon client.java
material.view.file_icon
material.view.file_icon server.java
material.view.file_icon worker.java
material.view.file_icon Лабораторная работа 3.doc
Работа представляет собой rar архив с файлами (распаковать онлайн), которые открываются в программах:
  • Microsoft Word

Описание

Лабораторная работа №3

РАЗРАБОТКА МНОГОПОТОЧНОГО СОКЕТА

Цель работы:Изучение методов программирования многопоточных сокетов с использованием пакетов java.net и java.lang.

Подготовка к лабораторной работе:

1. Изучить лекционный материал дисциплины "Технологии разработки телекоммуникационных сервисов" по темам: "Архитектура клиент-сервер. Сокеты", "Разработка многопоточного сокета".

2. Изучить соответствующие разделы в литературе [1-4].

3. Повторить принципы работы в среде Eclipse.

Краткая теория

Серверный сокет, поддерживающий общение с множеством клиентов одновременно, должен быть многопоточным.

Каждый поток создаётся и управляется объектом класса java.lang.Thread. Для поддержки сокетов и функций ввода-вывода необходим импорт пакетов:

import java.net.*;

import java.io.*;

Одним из способов создать поток является расширение класса Thread (нить).Класс, расширяющий Thread, переопределяет метод run() данного класса (код выполняемый потоком).Чтобы поток получил право на выполнение, конструктор потока вызывает метод start(), унаследованный от Thread. Приэтомзапуститсяметодrun().

Примерработыспотоками:

public class Talk extends Thread {

public void run() {

for (int i = 0; i< 8; i++) {

System.out.println("Talking");

try {

Thread.sleep(400);// остановкана 400 миллисекунд

} catch (InterruptedException e) {

System.err.print(e);

}

}

}

}



publicclassTalkTalk {

public static void main(String[] args) {

Talk talk = newTalk();

talk.start();

}

}

Для реализации сервера необходимо создать поток, расширяющий класс Thread, который содержит метод run(), реализующий функции сервера.

Примечание: В нашем примере функции сервера заключаются в том, чтобы принять от клиента текстовую строку и вернуть её назад (см. лабораторную работу №2).

Пример:

import java.io.*;

import java.net.*;

importjava.lang.*;

class Server extends Thread {

private Socket socket;

// Конструктор

public Server(Socket s) throws IOException {

socket = s;

… //реализация конструктора класса-сервера

start(); // вызываемrun()

}

public void run() {

// реализация сервера

}

}

Кроме того, понадобится класс, содержащий метод main(), в котором создаётся «слушающий» сокет (ServerSocket),и который будет осуществлять соединение с клиентами.

Пример:

publicclass MultiJServer {



publicstaticvoidmain (String[]args)throwsIOException{

ServerSocket s = new ServerSocket(port);

try {

while (true) {

Socket socket = s.accept();

new Server(socket);

}

}catch (IOException e) {

socket.close();

} finally {

s.close();

}

}

}

Задание:

Создать классы для реализации многопоточного соединения. Проверить передачу текстовой строки от клиента серверу и обратно. Использовать созданные классы для продолжительного сеанса связинескольких процессов. Обеспечить ввод с клавиатуры потоков данных для передачи клиентом серверу и обратно, окончание сеанса связи, и закрытие сокетов (клиента и сервера) по введённому с клавиатуры кодовому слову, например, «END».

Порядок выполнения работы:

1. Запустить среду Eclipse, установленную на компьютере.

2. Создать новый проект. Указать его название и местоположение.

3. Создать класс-клиент,содержащий метод main(). Добавить в класс средства для ввода строки с клавиатуры:

BufferedReader keyboard = newBufferedReader(newInputStreamReader(System.in));



String str = keyboard.readLine();

4. Создать класс-сервер,расширяющий Thread, и содержащий метод run() для реализации функций сервера.

5. Создать класс, содержащий метод main(), и осуществляющий соединение с клиентскими сокетами.

6. Компилировать классы.

7. При необходимости исправить найденные ошибки и повторить пп.6.

8. Запустить на выполнение класс-сервер.

9. Запустить на выполнение классы-клиенты.

10. Проследить за передачейтекста от клиентов к серверу и обратно.

11. Обеспечить сеанс связиклиент-сервер до завершения его пользователем (передать несколько введённых с клавиатуры текстовых строк).

12. Если есть такая возможность, обеспечить соединение нескольких клиентов, находящихся на разных компьютерах, с сервером.

13. Оформить отчёт.

14. Сдать работу.

Содержание отчёта:

1. Номер, название и цель лабораторной работы.

2. Задание по варианту.

3. Описание классов: их полей и методов.

4. Тексты классов.

5. Результаты работы программы.

6. Описание полученных результатов.

7. Вывод по проделанной работе.

Контрольные вопросы:

1. Что такое многозадачность и многопоточность?

2. Какими способами можно организовать создание и работу потоков?

3. Для чего нужен метод start()?

4. Охарактеризуйте метод accept().

5. Перечислите классы и методы, входящие в состав класса ServerSocket.

Дополнительная информация

Зачёт
Лабораторная работа №3. Технологии разработки телекоммуникационных сервисов
Задание: Создать классы для реализации многопоточного соединения. Проверить передачу текстовой строки от клиента серверу и обратно. Использовать созданные классы для продолжительного сеанса связи нескольких процессов. Обеспечить ввод с клавиатуры потоков данных для передачи клиентом серверу и обратно, окончание сеанса связи, и закрытие сокетов (клиента и сервера) по введённому с клавиатуры кодовому слову, например, «END». Для выполнения лабораторной работы были созданы классы “Server”, ”Worker”,
User Tatna : 14 апреля 2018
80 руб.
Лабораторная работа №3 по дисциплине: Технологии разработки телекоммуникационных сервисов. Вариант общий
Лабораторная работа №3 Разработка многопоточного сокета Цель работы: Изучение методов программирования многопоточных сокетов с использованием пакетов java.net и java.lang. Задание: Создать классы для реализации многопоточного соединения. Проверить передачу текстовой строки от клиента серверу и обратно. Использовать созданные классы для продолжительного сеанса связи нескольких процессов. Обеспечить ввод с клавиатуры потоков данных для передачи клиентом серверу и обратно, окончание сеанса связи,
User SibGOODy : 18 марта 2018
400 руб.
Лабораторная работа № 3 по дисциплине: Технология разработки телекоммуникационных сервисов
работа на тему: «Разработка многопоточного сокета» Задание: Создать классы для реализации многопоточного соединения. Проверить передачу текстовой строки от клиента серверу и обратно. Использовать созданные классы для продолжительного сеанса связи нескольких процессов. Обеспечить ввод с клавиатуры потоков данных для передачи клиентом серверу и обратно, окончание сеанса связи, и закрытие сокетов (клиента и сервера) по введённому с клавиатуры кодовому слову, например, «END». В архиве содержится от
User zzzzzzz : 10 февраля 2019
100 руб.
Технология разработки телекоммуникационных сервисов
Задание на курсовое проектирование 2 Краткие теоретические сведения 3 Система управления базами данных 3 MySQL 4 Eclipse JDT 5 Создание базы данных 6 Создание клиентской части 7 MydbClient.java 8 MainClass.java 10 Вывод 12
User thekara : 3 сентября 2022
2000 руб.
Технологии разработки телекоммуникационных сервисов
Лабораторная работа №1 “Приёмы объектно-ориентированного программирования на языке Java 2” по предмету «Технологии разработки телекоммуникационных сервисов» Лабораторная работа №2 “ РЕАЛИЗАЦИЯ КЛИЕНТ-СЕРВЕРНОЙ АРХИТЕКТУРЫ С ПОМОЩЬЮ СОКЕТОВ» Лабораторная работа №3 Разработка многопоточного сокета
User Dirol340 : 27 января 2021
600 руб.
Технологии разработки телекоммуникационных сервисов
Задание В качестве серверной части разработать базу данных в СУБД MySQL «Поликлиника». База данных содержит таблицу, состоящую из не менее чем 5-ти полей и 20-ти записей. Клиентская часть должна быть разработана на языке Java в среде Eclipse. Каждый запрос должен быть реализован отдельным методом. Все методы могут принадлежать одному классу. Отдельно должен быть реализован класс, содержащий метод main(). Таким образом, структура клиента должна быть такой: 1. Класс, содержащий статический метод m
User Dirol340 : 10 сентября 2020
500 руб.
Технологии разработки телекоммуникационных сервисов
Билет 4 1. Наследование. Полиморфизм. 2. Этапы разработки сервлета. Пример простого сервлета. 3. Задача (тема «Реализация клиент-серверной архитектуры на сокетах»).
User Dirol340 : 10 сентября 2020
150 руб.
Технологии разработки телекоммуникационных сервисов
Приёмы объектно-ориентированного программирования на языке Java Описание суперкласса и подклассов: их полей и методов Класс Device: описывает мобильное устройство. Содержит приватные поля: «тип соединения» и «тип операционной системы». Имеет геттеры для получения значения этих свойств. Поля заполняются при создании объекта при вызове конструктора класса. Класс Smartphone: является дочерним классом Device. Имеет
User Dirol340 : 10 сентября 2020
1000 руб.
Разработка автоматизированной системы управления компрессорной станцией
Разработка автоматизированной системы управления компрессорной станцией чертеж в автокаде
User Ilkham : 28 января 2026
150 руб.
Разработка автоматизированной системы управления компрессорной станцией
Гидравлика Задача 1.14
Высота цилиндрического вертикального резервуара h=10 см, его диаметр D=3 м. Определить массу мазута (ρм=920 кг/м³), которую можно налить в резервуар при 15ºС, если его температура может подняться до 40ºС. Расширением стенок резервуара пренебречь, температурный коэффициент объемного расширения жидкости βt=0,0008 1/ºC.
User Z24 : 1 декабря 2025
120 руб.
Гидравлика Задача 1.14
Шпора по физике с формулами
Формулы: Равноуск. Движение Движение по окружности Тело брош. под углом к горизонту Динамика Импульс Давление Молекулярная Физика Энергия Давление газов Термодинамика Электродинамика Конденсаторы Ток Колебания Волны Оптика Виток вращ. в маг. поле Электромагнетизм
User AniX : 16 сентября 2008
Теплотехника КГАУ 2015 Задача 1 Вариант 90
Углекислый газ из начального состояния с параметрами р1 и t1 изотермически сжимается до давления р2, а затем изохорно охлаждается до температуры t3. Определить параметры состояния во всех остальных точках процессов и показать эти процессы в р,v и T,s–диаграммах. Вычислить также величины работы, теплоты, изменения внутренней энергии и энтропии в каждом процессе.
User Z24 : 5 февраля 2026
250 руб.
Теплотехника КГАУ 2015 Задача 1 Вариант 90
up Наверх