where serverAddr is the 64bit IEEE Address of the radio of the server, and portNo is a port number in the range 0 to 255 that identifies this particular connection. Note that 0 is not a valid IEEE address in this implementation. The port number must match the port number used by the server.
Data is sent between the client and server in datagrams, of type Datagram. To get an empty datagram you must ask the connection for one:
Datagram dg = conn.newDatagram(conn.getMaximumLength());
Datagrams support
A datagram is sent by asking the connection to send it:
conn.send(dg);
A datagram is received by asking the connection to fill in one supplied by the application:
conn.receive(dg);
Here's a complete example:
Client end
RadiogramConnection conn = (RadiogramConnection)Connector.open("radiogram://0014.4F01.0000.0006:10");
Datagram dg = conn.newDatagram(conn.getMaximumLength()); try {
dg.writeUTF("Hello up there"); conn.send(dg); conn.receive(dg);
System.out.println ("Received: " + dg.readUTF()); } catch (NoRouteException e) {
System.out.println ("No route to 0014.4F01.0000.0006");
}finally { conn.close();
}
Server end
RadiogramConnection conn = (RadiogramConnection) Connector.open("radiogram://:10"); Datagram dg = conn.newDatagram(conn.getMaximumLength());
Datagram dgreply = conn.newDatagram(conn.getMaximumLength()); try {
conn.receive(dg);
String question = dg.readUTF(); dgreply.reset(); // reset stream pointer dgreply.setAddress(dg); // copy reply address from input if (question.equals("Hello up there")) {
dgreply.writeUTF("Hello down there");
}else { dgreply.writeUTF("What???");
}
conn.send(dgreply);
} catch (NoRouteException e) {
System.out.println ("No route to " + dgreply.getAddress()); } finally {
conn.close();
}
32