This interface defines the capabilities that a datagram connection
must have.
Reminder: In common with all the other addressing schemes
used for I/O in CLDC, the syntax for datagram addressing is not
defined in the CLDC Specification. Syntax definition can
only be take place at the profile level. The reason for this is
that the datagram interface classes of CLDC can be used for
implementing various kinds of datagram protocols. Examples
include IP and WDP networks as well as infrared beaming
protocols used by various PDAs and other devices. All these
protocols use very different addressing mechanisms.
In the sample implementation provided as part of the CLDC
implementation, the following addressing scheme
is used for UDP datagrams.
The parameter string describing the target of a connection
in the CLDC implementation takes the following form:
{protocol}://[{host}]:[{port}]
A datagram connection can be opened in a "client" mode or "server" mode.
If the "//{host}" part is missing then the connection is opened as
a "server" (by "server", we mean that a client application initiates
communication). When the "//{host}" part is specified, the connection
is opened as a "client".
Examples:
A datagram connection for accepting datagrams
datagram://:1234
A datagram connection for sending to a server:
datagram://123.456.789.12:1234
Note that the port number in "server mode" (unspecified host name) is
that of the receiving port. The port number in "client mode" (host name
specified) is that of the target port. The reply-to port in both cases
is never unspecified. In "server mode", the same port number is used for
both receiving and sending. In "client mode", the reply-to port is
always dynamically allocated.
The allocation of datagram objects is done in a more abstract way
than in J2SE. This is to allow a single platform to support several
different datagram interfaces simultaneously. Datagram objects must be
allocated by calling the "newDatagram" method of the DatagramConnection
object. The resulting object is defined using another interface type
called "javax.microedition.io.Datagram". |