Добавил:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4-1 Мережне програмування / МПТКС Методичні вказівки до IDEA.doc
Скачиваний:
111
Добавлен:
02.02.2021
Размер:
2.72 Mб
Скачать

Лабораторна робота №2

ТЕМА: . Створення клієнт/серверних додатків на Java з використанням UDP сокетів

1.1  Мета роботи: розробити клієнт/серверний додаток, в якому сервер слухає запити клієнтів на порт 1500 та відправляє об'єкт-повідомлення, що містить поточну дату/час сервера та рядок повідомлення.

1.2 Методичні вказівки з організації самостійної роботи студентів.

Java позволяет разрабатывать сетевые приложения с использованием датаграммных сокетов UDP и сокетов TCP/IP. Сокеты UDP используют протокол UDP для взаимодействия приложений через сеть. UDP является быстрым, без установления соединения и ненадежным протоколом. Пакет java.net содержит следующие два класса, позволяющие применять сокеты UDP в приложении Java:

• Класс DatagramPacket

• Класс DatagramSocket

1.2.1Классы DatagramPacket и DatagramSocket

Объект DatagramPacket является контейнером данных, состоящим из датаграммных пакетов, которые посылаются или принимаются через сеть. Следующие конструкторы используются для инициализации объектов DatagramPacket:

•public DatagramPacket(byte[] buffer, int buffer_length): Создает объект DatagramPacket, который принимает и сохраняет данные в массиве byte. Длина буфера массива byte задается вторым параметром buffer_length.

• public DatagramPacket(byte[] buffer, int buffer_length, InetAddress address, int port): Создает объект DatagramPacket, который посылает пакеты данных заданной длины. Пакеты данных посылаются на компьютер с заданным IP адресом и номером порта, передаваемыми как параметры.

Методы, определенные в классе DatagramPacket, могут быть использованы после инициализации объекта класса DatagramPacket. Таблица 2 представляет методы класса DatagramPacket.

Таблица 2. Метод

Описание

public InetAddress getAddress()

Возвращает объект InetAddress, который содержит IP-адрес компьютера, на который посыла-ется датаграммный пакет или от которого принимается датаграммный пакет

public byte[] getData()

Возвращает буферный массив byte, который содержит данные

public int getLength()

Возвращает длину буферного массива, который содержит данные

public int getPort()

Возвращает номер порта компьютера, на который посылается датаграммный пакет или от которого датаграммный пакет принимается.

public void setAddress(InetAddress address)

Устанавливает IP-адрес машины, на которую датаграммный пакет должен быть послан

public void setData(byte[] buffer)

Устанавливает массив byte в качестве данных для пакета.

public void setPort(int port)

Устанавливает номер порта на удаленном хосте

public void setLength(int length)

Устанавливает длину буфера обмена

Класс DatagramSocket содержит функциональность для управления объектами DatagramPacket. Объекты DatagramPacket отправляют и принимают сохраненные данные, используя объект DatagramSocket. Следующие конструкторы, используются для инициализации объекта DatagramSocket:

• public DatagramSocket(): Создает объект DatagramSocket и связывает его с любым доступным портом на локальном компьютере.

• public DatagramSocket(int port): Создает объект и связывает его с портом на локальном хосте, заданным в параметре.

• public DatagramSocket(int port, InetAddress address): Создает объект и связывает его с портом заданного хоста.

Конструктор класса DatagramSocket вызывает исключительную ситуацию SocketException.

Таблица 3 представляет методы класса DatagramSocket, которые используются для получения информации из объекта DatagramSocket:

Таблица 3. Метод

Описание

public InetAddress getInetAddress()

Возвращает объект InetAddress, содержащий

IP-адрес, с которым объект DatagramSocket связывается.

public InetAddress getLocalAddress()

Возвращает объект InetAddress , который

содержит IP-адрес локального хоста, с которым объект DatagramSocket связывется.

public int getLocalPort()

Возвращает целое значение, которое представляет

порт локального хоста, с которым объект DatagramSocket связывается.

public void bind(SocketAddress address)

Связывает объект DatagramSocket

с объектом SocketAddress.

public void close()

Закрывает объект DatagramSocket.

public void connect(InetAddress address, int port)

Соединяет объект DatagramSocket

с заданным IP-адресом и портом.

public void disconnect()

Разъединяет объект DatagramSocket.

public boolean isBound()

Возвращает true, если объект DatagramSocket связан с портом.

public boolean isClosed()

Возвращает true, если объект DatagramSocket закрывается.

public boolean isConnected()

public void receive( DatagramPacket packet)

public void send(DatagramPacket packet)

Возвращает true, когда объект DatagramSocket соединяется с IP-адресом.

Получает датаграммный пакет от текущего

объекта DatagramSocket

Передает датаграммный пакет от текущего объекта DatagramSocket.