|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
@TransactionType(value=NOT_SUPPORTED) public interface DatagramConnection
This interface defines the capabilities that a datagram connection must have.
Reminder: Since the CLDC Specification does not define any actual network protocol implementations, the syntax for datagram addressing is not defined in the CLDC Specification. Rather, syntax definition takes place at the level of Java ME profiles such as MIDP.
In the sample implementation that is provided as part of the CLDC reference implementation, the following addressing scheme is used:
The parameter string describing the target of a connection in the CLDC reference 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.
Also note that the allocation of datagram objects is done in a more abstract
way than in Java 2 Standard Edition (J2SE). Instead of providing a concrete
DatagramPacket
class, an abstract Datagram
interface is provided. This is to allow a single platform to support several
different datagram interfaces simultaneously. Datagram objects must be
allocated by calling the newDatagram
methods of the
DatagramConnection
object. The resulting object is defined
using another interface type called
javax.microedition.io.Datagram
.
Method Summary | |
---|---|
int |
getMaximumLength()
Get the maximum length a datagram can be. |
int |
getNominalLength()
Get the nominal length of a datagram. |
Datagram |
newDatagram(byte[] buf,
int size)
Create a new datagram object. |
Datagram |
newDatagram(byte[] buf,
int size,
String addr)
Make a new datagram object. |
Datagram |
newDatagram(int size)
Create a new datagram object. |
Datagram |
newDatagram(int size,
String addr)
Create a new datagram object. |
void |
receive(Datagram dgram)
Receive a datagram. |
void |
send(Datagram dgram)
Send a datagram. |
Methods inherited from interface javax.microedition.io.Connection |
---|
close |
Method Detail |
---|
int getMaximumLength() throws IOException
newDatagram
method, and the maximum size of the datagram
that can be sent or received.
IOException
- If an I/O error occurs.int getNominalLength() throws IOException
IOException
- If an I/O error occurs.void send(Datagram dgram) throws IOException
Datagram
object includes the
information indicating the data to be sent, its length, and the address
of the receiver. The method sends length
bytes starting at
the current offset
of the Datagram
object,
where length
and offset
are internal state
variables of the Datagram
object.
A datagram cannot be sent if the permission to connect to the remote host and port is not granted.
dgram
- A datagram.
IOException
- If an I/O error occurs.
InterruptedIOException
- Timeout or interrupt occurred.
SecurityException
- If the operation is not allowed. (See the overview page
for more information.)void receive(Datagram dgram) throws IOException
Datagram
object is filled with the data received, starting
at the location determined by the offset
state variable,
and the data is ready to be read using the methods of the
DataInput
interface.
This method blocks until a datagram is received. The internal
length
state variable in the Datagram
object contains the length of the received datagram. If the received data
is longer than the length of the internal buffer minus offset, data is
truncated.
This method does not change the internal read/write state variable
of the Datagram
object. Use method
Datagram.reset
to change the pointer before reading if
necessary.
A datagram cannot be received if the permission to accept a connection from the remote host and port is not granted.
dgram
- A datagram.
IOException
- If an I/O error occurs.
InterruptedIOException
- Timeout or interrupt occurred.
SecurityException
- If the operation is not allowed. (See the overview page
for more information.)Datagram newDatagram(int size) throws IOException
size
- The size of the buffer needed for the datagram
IOException
- If an I/O error occurs.
IllegalArgumentException
- if the size is negative or larger than the maximum sizeDatagram newDatagram(int size, String addr) throws IOException
size
- The size of the buffer needed for the datagramaddr
- The I/O address to which the datagram will be sent
IOException
- If an I/O error occurs.
IllegalArgumentException
- if the size is negative or larger than the maximum size,
or if the address parameter is invalidDatagram newDatagram(byte[] buf, int size) throws IOException
buf
- The buffer to be used for the datagramsize
- The size of the buffer needed for the datagram
IOException
- If an I/O error occurs.
IllegalArgumentException
- if the size is negative or larger than the maximum size or
the given buffer's length, or if the buffer parameter is
invalidDatagram newDatagram(byte[] buf, int size, String addr) throws IOException
buf
- The buffer to be used for the datagramsize
- The size of the buffer needed for the datagramaddr
- The I/O address to which the datagram will be sent
IOException
- If an I/O error occurs.
IllegalArgumentException
- if the size is negative or larger than the maximum size or
the given buffer's length, or if the address or buffer
parameter is invalid
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |