|
MID Profile | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
This interface defines the server socket stream connection.
A server socket is accessed using a generic connection string
with the host omitted. For example, socket://:79
defines an inbound server socket on port 79
.
The host can be discovered using the getLocalAddress
method.
The acceptAndOpen()
method returns a
SocketConnection
instance. In addition to the
normal StreamConnection
behavior, the
SocketConnection
supports accessing the IP
end point addresses of the live connection and access
to socket options that control the buffering and timing delays
associated with specific application usage of the connection.
Access to server socket connections may be restricted by the
security policy of the device. Connector.open
MUST
check access for the initial server socket connection and
acceptAndOpen
MUST check before returning
each new SocketConnection
.
A server socket can be used to dynamically select an
available port by omitting both the host and the port
parameters in the connection URL string.
For example, socket://
defines an inbound server socket on a port which is allocated
by the system.
To discover the assigned port number use the
getLocalPort
method.
The URI must conform to the BNF syntax specified below. If the URI
does not conform to this syntax, an IllegalArgumentException
is thrown.
<socket_connection_string> | ::= "socket://" | "socket://"<hostport> |
<hostport> | ::= host ":" port |
<host> | ::= omitted for inbound connections, See SocketConnection |
<port> | ::= numeric port number (omitted for system assigned port) |
The following examples show how a ServerSocketConnection
would be used to access a sample loopback program.
// Create the server listening socket for port 1234 ServerSocketConnection scn = (ServerSocketConnection) Connector.open("socket://:1234"); // Wait for a connection. SocketConnection sc = (SocketConnection) scn.acceptAndOpen(); // Set application specific hints on the socket. sc.setSocketOption(DELAY, 0); sc.setSocketOption(LINGER, 0); sc.setSocketOption(KEEPALIVE, 0); sc.setSocketOption(RCVBUF, 128); sc.setSocketOption(SNDBUF, 128); // Get the input stream of the connection. DataInputStream is = sc.openDataInputStream(); // Get the output stream of the connection. DataOutputStream os = sc.openDataOutputStream(); // Read the input data. String result = is.readUTF(); // Echo the data back to the sender. os.writeUTF(result); // Close everything. is.close(); os.close(); sc.close(); scn.close(); ..
Method Summary | |
String |
getLocalAddress()
Gets the local address to which the socket is bound. |
int |
getLocalPort()
Returns the local port to which this socket is bound. |
Methods inherited from interface javax.microedition.io.StreamConnectionNotifier |
acceptAndOpen |
Methods inherited from interface javax.microedition.io.Connection |
close |
Method Detail |
public String getLocalAddress() throws IOException
The host address(IP number) that can be used to connect to this end of the socket connection from an external system. Since IP addresses may be dynamically assigned, a remote application will need to be robust in the face of IP number reasssignment.
The local hostname (if available) can be accessed from
System.getProperty("microedition.hostname")
IOException
- if the connection was closedSocketConnection
public int getLocalPort() throws IOException
IOException
- if the connection was closedSocketConnection
|
MID Profile | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |