SocketAddress address)



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

Класс DatagramSocket может выступать в роли клиента и сервера, то есть он способен получать и отправлять пакеты. Отправить пакет можно с помощью метода send(DatagramPacket pac), для получения пакета используется метод receive(DatagramPacket pac).

/* пример # 9: отправка файла по UDP протоколу: Sender.java */

Package chapt15;

import java.io.*;

import java.net.*;

public class Sender {

public static void main(String[] args) {

try {

byte[] data = new byte[1000];

DatagramSocket s = new DatagramSocket();

InetAddress addr =

InetAddress.getLocalHost();

/*файл с именем toxic.mp3 должен лежать в корне проекта*/

FileInputStream fr =

New FileInputStream(

new File("toxic.mp3"));

DatagramPacket pac;

while (fr.read(data)!= -1) {

//создание пакета данных

pac = new DatagramPacket(data, data.length, addr, 8033);

s.send(pac); //отправление пакета

}

Fr.close();

System. out. println("Файл отправлен");

} catch (UnknownHostException e) {

// неверный адрес получателя

E.printStackTrace();

} catch (SocketException e) {

// возникли ошибки при передаче данных


Дата добавления: 2015-12-17; просмотров: 15; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!