org.apache.commons.net
Class DatagramSocketClient
java.lang.Object
org.apache.commons.net.DatagramSocketClient
public abstract class DatagramSocketClient
extends java.lang.Object
The DatagramSocketClient provides the basic operations that are required
of client objects accessing datagram sockets. It is meant to be
subclassed to avoid having to rewrite the same code over and over again
to open a socket, close a socket, set timeouts, etc. Of special note
is the
setDatagramSocketFactory
method, which allows you to control the type of DatagramSocket the
DatagramSocketClient creates for network communications. This is
especially useful for adding things like proxy support as well as better
support for applets. For
example, you could create a
DatagramSocketFactory
that
requests browser security capabilities before creating a socket.
All classes derived from DatagramSocketClient should use the
_socketFactory_
member variable to
create DatagramSocket instances rather than instantiating
them by directly invoking a constructor. By honoring this contract
you guarantee that a user will always be able to provide his own
Socket implementations by substituting his own SocketFactory.
DatagramSocketFactory
protected boolean | _isOpen_ -
A status variable indicating if the client's socket is currently open.
|
protected DatagramSocketFactory | _socketFactory_ - The datagram socket's DatagramSocketFactory.
|
protected DatagramSocket | _socket_ - The datagram socket used for the connection.
|
protected int | _timeout_ - The timeout to use after opening a socket.
|
void | close() -
Closes the DatagramSocket used for the connection.
|
int | getDefaultTimeout() -
Returns the default timeout in milliseconds that is used when
opening a socket.
|
InetAddress | getLocalAddress() -
Returns the local address to which the client's socket is bound.
|
int | getLocalPort() -
Returns the port number of the open socket on the local host used
for the connection.
|
int | getSoTimeout() -
Returns the timeout in milliseconds of the currently opened socket.
|
boolean | isOpen() -
Returns true if the client has a currently open socket.
|
void | open() -
Opens a DatagramSocket on the local host at the first available port.
|
void | open(int port) -
Opens a DatagramSocket on the local host at a specified port.
|
void | open(int port, InetAddress laddr) -
Opens a DatagramSocket at the specified address on the local host
at a specified port.
|
void | setDatagramSocketFactory(DatagramSocketFactory factory) -
Sets the DatagramSocketFactory used by the DatagramSocketClient
to open DatagramSockets.
|
void | setDefaultTimeout(int timeout) -
Set the default timeout in milliseconds to use when opening a socket.
|
void | setSoTimeout(int timeout) -
Set the timeout in milliseconds of a currently open connection.
|
_isOpen_
protected boolean _isOpen_
A status variable indicating if the client's socket is currently open.
_socketFactory_
protected DatagramSocketFactory _socketFactory_
The datagram socket's DatagramSocketFactory. **
_socket_
protected DatagramSocket _socket_
The datagram socket used for the connection. **
_timeout_
protected int _timeout_
The timeout to use after opening a socket. **
DatagramSocketClient
public DatagramSocketClient()
Default constructor for DatagramSocketClient. Initializes
_socket_ to null, _timeout_ to 0, and _isOpen_ to false.
close
public void close()
Closes the DatagramSocket used for the connection.
You should call this method after you've finished using the class
instance and also before you call open()
again. _isOpen_ is set to false and _socket_ is set to null.
If you call this method when the client socket is not open,
a NullPointerException is thrown.
getDefaultTimeout
public int getDefaultTimeout()
Returns the default timeout in milliseconds that is used when
opening a socket.
- The default timeout in milliseconds that is used when
opening a socket.
getLocalAddress
public InetAddress getLocalAddress()
Returns the local address to which the client's socket is bound.
If you call this method when the client socket is not open, a
NullPointerException is thrown.
- The local address to which the client's socket is bound.
getLocalPort
public int getLocalPort()
Returns the port number of the open socket on the local host used
for the connection. If you call this method when the client socket
is not open, a NullPointerException is thrown.
- The port number of the open socket on the local host used
for the connection.
getSoTimeout
public int getSoTimeout()
throws SocketException
Returns the timeout in milliseconds of the currently opened socket.
If you call this method when the client socket is not open,
a NullPointerException is thrown.
- The timeout in milliseconds of the currently opened socket.
isOpen
public boolean isOpen()
Returns true if the client has a currently open socket.
- True if the client has a curerntly open socket, false otherwise.
open
public void open()
throws SocketException
Opens a DatagramSocket on the local host at the first available port.
Also sets the timeout on the socket to the default timeout set
by
setDefaultTimeout()
.
_isOpen_ is set to true after calling this method and _socket_
is set to the newly opened socket.
open
public void open(int port)
throws SocketException
Opens a DatagramSocket on the local host at a specified port.
Also sets the timeout on the socket to the default timeout set
by
setDefaultTimeout()
.
_isOpen_ is set to true after calling this method and _socket_
is set to the newly opened socket.
port
- The port to use for the socket.
open
public void open(int port,
InetAddress laddr)
throws SocketException
Opens a DatagramSocket at the specified address on the local host
at a specified port.
Also sets the timeout on the socket to the default timeout set
by
setDefaultTimeout()
.
_isOpen_ is set to true after calling this method and _socket_
is set to the newly opened socket.
port
- The port to use for the socket.laddr
- The local address to use.
setDatagramSocketFactory
public void setDatagramSocketFactory(DatagramSocketFactory factory)
Sets the DatagramSocketFactory used by the DatagramSocketClient
to open DatagramSockets. If the factory value is null, then a default
factory is used (only do this to reset the factory after having
previously altered it).
factory
- The new DatagramSocketFactory the DatagramSocketClient
should use.
setDefaultTimeout
public void setDefaultTimeout(int timeout)
Set the default timeout in milliseconds to use when opening a socket.
After a call to open, the timeout for the socket is set using this value.
This method should be used prior to a call to
open()
and should not be confused with
setSoTimeout()
which operates on the currently open socket. _timeout_ contains
the new timeout value.
timeout
- The timeout in milliseconds to use for the datagram socket
connection.
setSoTimeout
public void setSoTimeout(int timeout)
throws SocketException
Set the timeout in milliseconds of a currently open connection.
Only call this method after a connection has been opened
by
open()
.
timeout
- The timeout in milliseconds to use for the currently
open datagram socket connection.