// Purpose. Sending and receiving UDP datagrams import java.io.*; import java.net.*; class UDPsend extends Thread { public void run() { try { DatagramSocket socket = new DatagramSocket(); DatagramPacket packet; String str; for (int i=1; i < 6; i++) { str = "message " + i; System.out.println( "sending --" + str + "--" ); packet = new DatagramPacket( str.getBytes(), str.length(), InetAddress.getByName("127.0.0.1"), 8189 ); socket.send( packet ); Thread.sleep( 50 ); } socket.close(); } catch( Exception e ) { e.printStackTrace(); } } } class UDPreceive extends Thread { public void run() { try { DatagramSocket socket = new DatagramSocket( 8189 ); DatagramPacket packet; byte[] buf = new byte[30]; String str; for (int i=1; i < 6; i++) { packet = new DatagramPacket( buf, buf.length ); socket.receive( packet ); str = new String( buf, 0, packet.getLength() ); System.out.println( " receiving --" + str + "--" ); } socket.close(); } catch( IOException e ) { e.printStackTrace(); } } } public class UDPdemo { public static void main( String[] args ) { new UDPsend().start(); new UDPreceive().start(); } } // sending --message 1-- // receiving --message 1-- // sending --message 2-- // receiving --message 2-- // sending --message 3-- // receiving --message 3-- // sending --message 4-- // receiving --message 4-- // sending --message 5-- // receiving --message 5--