Иллюстрированный самоучитель по Java


              

в обратном порядке, вместо метода


ds.close ()

Прием и распаковка дейтаграмм производится в обратном порядке, вместо метода send () применяется метод receive (DatagramPacket pack).

В листинге 19.5 показан пример класса Sender, посылающего сообщения, набираемые в командной строке, на localhost, порт номер 1050. Класс Recipient, описанный в листинге 19.6, принимает эти сообщения и выводит их в свой стандартный вывод.



Листинг 19.5.


Посылка дейтаграмм по протоколу UDP

import java.net.*; 

import java.io.*;

class Sender{

private String host; 

private int port; 

Sender(String host, int port){ 

this.host = host; 

this.port = port; 

}

private void sendMessage(String mes){ 

try{

byte[] data = mes.getBytes();

InetAddress addr = InetAddress.getByName(host);

DatagramPacket pack =

new DatagramPacket(data, data.length, addr, port); 

DatagramSocket ds = new DatagramSocket(); 

ds.send(pack); 

ds.close();

}catch(IOException e){

System.err.println(e); 





public static void main(String[] args){

Sender sndr = new Sender("localhost", 1050); 

for (int k = 0; k < args.length; k++)

sndr.sendMessage(args[k]); 



}



Листинг 19.6.


Прием дейтаграмм по протоколу UDP

import j ava.net.*; 

import java.io.*;

class Recipient{

public static void main(String[] args)( 

try{

DatagramSocket ds = new DatagramSocket(1050); 

while (true){

DatagramPacket pack =

new DatagramPacket(new byte[1024], 1024); 

ds.receive(pack);

System.out.println(new String(pack.getData())); 



)catch(Exception e){

System.out.println(e); 





}


Содержание  Назад