Министерство образования и науки Российской Федерации
НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
КАФЕДРА ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ
Лабораторная работа №8
Тема: Распределенная обработка данных и сетевые технологии.
Факультет АВТФ
Группа АВТ-909
Студент Гоголи А.Г.
Преподаватель Малявко А.А.
Новосибирск, 2012
1. Познакомиться с классами Java для работы в сети.
2. Изучить организацию передачи данных по сети в Java по протоколам TCP и UDP.
3. Научиться строить приложения и апплеты на Java с использованием средств сетевого взаимодействия.
В ходе выполнения лабораторной работы была разработана следующая иерархия классов:
--Device.java
Keyboard.java Monitor.java Mouse.java Printer.java
--IOutputDevice.java
--Collection.java
--ServerConnection
--TCP_Listener
--UDP_Listener
Классы для работы с сетью:
ServerConnection – отвечает за установку соединения с сервером и отсылку ему пакетов.
TCP_Listener – наследует класс Thread, отвечает за прием пакетов по протоколы TCP и их обработку
UDP_Listener – наследует класс Thread, отвечает за прием пакетов по протоколы UDP и их обработку
Графический интерфейс:
Главное окно:
Содержит в себе кнопку "Добавить", список типов периферийных устройств и кнопки «листания» списка и отображает все созданные объекты в виде списка.
Диалог добавления устройства:
В нем нужно выбрать тип добавляемого устройства, указать фирму, цену устройства. Присутствует ли провод для соединения с компьютером. Для Мониторов и Принтеров необходимо указать дополнительные параметры. Мониторы: тип монитора и диагональ. Принтеры: цветность, формат и тип принтера.
Листинг программы:
Класс Device.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package lab6;
import java.io.*;
abstract class Device implements Serializable{
protected String name; // название
protected String label; // фирма
protected int type; // 1 = устр.вывода, 0 = ввода.
protected double price; // цена
protected boolean wire;
Device(String name, int type){
this.name = name;
this.type = type;
this.label = "";
this.price = 0;
this.wire = true;
}
Device(String name, String label, int type, double price, boolean wire){
this.name = name;
this.label = label;
this.type = type;
this.price = price;
this.wire = wire;
}
protected void GetInfo()
{
System.out.println("------------------");
System.out.println("Название: "+this.name + "\nФирма: " + this.label + "\nЦена: " + this.price);
if (this.type == 0)
{
System.out.println("Тип: устройство ввода");
}
else
{
System.out.println("Тип: устройство вывода");
}
if (this.wire == true)
{
System.out.println("Тип соединения: проводное устройство");
}
else
{
System.out.println("Тип соединения: беспроводное устройство");
}
};
}
Класс Keyboard.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package lab6;
import java.io.*;
class Keyboard extends Device implements Serializable{
private int type = 0;
public Keyboard(String name){
super(name,0);
}
public Keyboard(String name, String label, double price, boolean wire){
super(name, label, 0, price,wire );
}
@Override
public void GetInfo()
{
super.GetInfo();
//this.type == 0 ? System.out.println("Тип: устройство ввода") : System.out.println("Тип: устройство вывода");
}
}
Класс Mouse.java
package lab6;
import java.io.*;
class Mouse extends Device implements Serializable{
int type = 0;
Mouse(String name){
super(name, 0);
}
Mouse(String name, String label,double price, boolean wire){
super(name,label,0,price, wire);
}
@Override
public void GetInfo()
{
super.GetInfo();
//this.type == 0 ? System.out.println("Тип: устройство ввода") : System.out.println("Тип: устройство вывода");
}
}
Класс Monitor.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package lab6;
import java.io.*;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.