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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!