J2ME DatagramSender

import java.io.IOException;import javax.microedition.io.Connector;import javax.microedition.io.Datagram;import javax.microedition.io.DatagramConnection;public class DatagramSender {    public static void main(String[] args) {        if (args.length != 2) {            System.out.println(“Usage: DatagramSender port length”);            System.exit(1);        }                try {            DatagramConnection sender =                     (DatagramConnection)Connector.open(“datagram://localhost:” + args[0]);            int length = Integer.parseInt(args[1]);            byte[] buffer = new byte[length];            for (int i = 0; i < length; i++) {                buffer[i] = (byte)(‘0’ + (i % 10));            }            Datagram dgram = sender.newDatagram(buffer, buffer.length);            sender.send(dgram);                        // Wait for the packet to be returned            for (int i = 0; i < length; i++) {                buffer[i] = (byte)0;            }            sender.receive(dgram);            length = dgram.getLength();            System.out.println(“Received return packet, length is ” + length);                        // Show the content of the datagram.            for (int i = 0; i < length; i++) {                System.out.print(buffer[i] + ” “);            }            System.out.println();        } catch (IOException ex) {            System.out.println(“IOException: ” + ex);        }    }}

J2ME Datagram Receiver

import java.io.IOException;import javax.microedition.io.Connector;import javax.microedition.io.Datagram;import javax.microedition.io.DatagramConnection;public class DatagramReceiver {    public static void main(String[] args) {        if (args.length != 1) {            System.out.println(“Usage: DatagramReceiver port”);            System.exit(1);        }                try {            DatagramConnection receiver =                     (DatagramConnection)Connector.open(“datagram://:” + args[0]);            byte[] buffer = new byte[256];            Datagram dgram = receiver.newDatagram(buffer, buffer.length);            for ($$) {                dgram.setLength(buffer.length);                receiver.receive(dgram);                int length = dgram.getLength();                System.out.println(“Datagram received. Length is ” + length);                // Show the content of the datagram.                for (int i = 0; i < length; i++) {                    System.out.print(buffer[i] + ” “);                }                System.out.println();                                // Send it back…                receiver.send(dgram);            }        } catch (IOException ex) {            System.out.println(“IOException: ” + ex);        }    }}