|
SunSPOT API V3.0 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface DatagramConnection
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 reference implementation, the following addressing scheme is used for UDP datagrams.
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.
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".
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)
Make a new datagram object. |
Datagram |
newDatagram(byte[] buf,
int size,
String addr)
Make a new datagram object. |
Datagram |
newDatagram(int size)
Make a new datagram object automatically allocating a buffer. |
Datagram |
newDatagram(int size,
String addr)
Make 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
IOException
- If an I/O error occurs.int getNominalLength() throws IOException
IOException
- If an I/O error occurs.Datagram newDatagram(int size) throws IOException
size
- The length of the buffer to be allocated
for the datagram
IOException
- If an I/O error occurs.
IllegalArgumentException
- if the length is negative
or larger than the bufferDatagram newDatagram(int size, String addr) throws IOException
size
- The length of the buffer to be usedaddr
- The I/O address to which the datagram
will be sent
IOException
- If an I/O error occurs.
IllegalArgumentException
- if the length is negative or
larger than the buffer, or if the address
parameter is invalidDatagram newDatagram(byte[] buf, int size) throws IOException
buf
- The buffer to be used in the datagramsize
- The length of the buffer to be allocated
for the datagram
IOException
- If an I/O error occurs.
IllegalArgumentException
- if the length is negative or
larger than the buffer, or if the buffer
parameter is invalidDatagram newDatagram(byte[] buf, int size, String addr) throws IOException
buf
- The buffer to be used in the datagramsize
- The length of the buffer to be usedaddr
- The I/O address to which the datagram
will be sent
IOException
- If an I/O error occurs.
IllegalArgumentException
- if the length is negative or
larger than the buffer, or if the address
or buffer parameters is invalidvoid receive(Datagram dgram) throws IOException
dgram
- A datagram.
IOException
- If an I/O error occurs.
InterruptedIOException
- Timeout or upon closing the
connection with outstanding I/O.void send(Datagram dgram) throws IOException
dgram
- A datagram.
IOException
- If an I/O error occurs.
InterruptedIOException
- Timeout or upon closing the
connection with outstanding I/O.
|
SunSPOT API V3.0 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |