Build 1.1_r1 (from source)

java.net
Class DatagramSocketImpl

java.lang.Object
  extended by java.net.DatagramSocketImpl
All Implemented Interfaces:
SocketOptions

public abstract class DatagramSocketImpl
extends Object
implements SocketOptions

The abstract superclass for datagram and multicast socket implementations.

Since:
Android 1.0

Field Summary
protected  FileDescriptor fd
          File descriptor that is used to address this socket.
protected  int localPort
          The number of the local port to which this socket is bound.
 
Fields inherited from interface java.net.SocketOptions
IP_MULTICAST_IF, IP_MULTICAST_IF2, IP_MULTICAST_LOOP, IP_TOS, SO_BINDADDR, SO_BROADCAST, SO_KEEPALIVE, SO_LINGER, SO_OOBINLINE, SO_RCVBUF, SO_REUSEADDR, SO_SNDBUF, SO_TIMEOUT, TCP_NODELAY
 
Constructor Summary
DatagramSocketImpl()
          Constructs an unbound datagram socket implementation.
 
Method Summary
protected abstract  void bind(int port, InetAddress addr)
          Binds the datagram socket to the given localhost/port.
protected abstract  void close()
          Closes this socket.
protected  void connect(InetAddress inetAddr, int port)
          Connects this socket to the specified remote address and port.
protected abstract  void create()
          This method allocates the socket descriptor in the underlying operating system.
protected  void disconnect()
          Disconnects this socket from the remote host.
protected  FileDescriptor getFileDescriptor()
          Gets the FileDescriptor of this datagram socket, which is invalid if the socket is closed or not bound.
(package private)  InetAddress getLocalAddress()
          Gets the local address to which the socket is bound.
protected  int getLocalPort()
          Gets the local port of this socket.
abstract  Object getOption(int optID)
          Gets the value for the specified socket option.
protected abstract  int getTimeToLive()
          Gets the time-to-live (TTL) for multicast packets sent on this socket.
protected abstract  byte getTTL()
          Deprecated. Replaced by getTimeToLive()
protected abstract  void join(InetAddress addr)
          Adds this socket to the multicast group addr.
protected abstract  void joinGroup(SocketAddress addr, NetworkInterface netInterface)
          Adds this socket to the multicast group addr.
protected abstract  void leave(InetAddress addr)
          Removes this socket from the multicast group addr.
protected abstract  void leaveGroup(SocketAddress addr, NetworkInterface netInterface)
          Removes this socket from the multicast group addr.
protected abstract  int peek(InetAddress sender)
          Peeks at the incoming packet to this socket and returns the address of the sender.
protected abstract  int peekData(DatagramPacket pack)
          Receives data into the supplied datagram packet by peeking.
protected abstract  void receive(DatagramPacket pack)
          Receives data and stores it in the supplied datagram packet pack.
protected abstract  void send(DatagramPacket pack)
          Sends the given datagram packet pack.
abstract  void setOption(int optID, Object val)
          Sets the value for the specified socket option.
protected abstract  void setTimeToLive(int ttl)
          Sets the time-to-live (TTL) option for multicast packets sent on this socket.
protected abstract  void setTTL(byte ttl)
          Deprecated. Replaced by setTimeToLive(int)
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

fd

protected FileDescriptor fd
File descriptor that is used to address this socket.

Since:
Android 1.0

localPort

protected int localPort
The number of the local port to which this socket is bound.

Since:
Android 1.0
Constructor Detail

DatagramSocketImpl

public DatagramSocketImpl()
Constructs an unbound datagram socket implementation.

Since:
Android 1.0
Method Detail

bind

protected abstract void bind(int port,
                             InetAddress addr)
                      throws SocketException
Binds the datagram socket to the given localhost/port. Sockets must be bound prior to attempting to send or receive data.

Parameters:
port - the port on the localhost to bind.
addr - the address on the multihomed localhost to bind.
Throws:
SocketException - if an error occurs while binding, for example, if the port has been already bound.
Since:
Android 1.0

close

protected abstract void close()
Closes this socket.

Since:
Android 1.0

create

protected abstract void create()
                        throws SocketException
This method allocates the socket descriptor in the underlying operating system.

Throws:
SocketException - if an error occurs while creating the socket.
Since:
Android 1.0

getFileDescriptor

protected FileDescriptor getFileDescriptor()
Gets the FileDescriptor of this datagram socket, which is invalid if the socket is closed or not bound.

Returns:
the current file descriptor of this socket.
Since:
Android 1.0

getLocalAddress

InetAddress getLocalAddress()
Gets the local address to which the socket is bound.

Returns:
the local address to which the socket is bound.
Since:
Android 1.0

getLocalPort

protected int getLocalPort()
Gets the local port of this socket.

Returns:
the local port to which this socket is bound.
Since:
Android 1.0

getOption

public abstract Object getOption(int optID)
                          throws SocketException
Gets the value for the specified socket option.

Specified by:
getOption in interface SocketOptions
Parameters:
optID - the ID of the socket option to be retrieved.
Returns:
the requested option value.
Throws:
SocketException - if an error occurs while accessing the option.
Since:
Android 1.0

getTTL

@Deprecated
protected abstract byte getTTL()
                        throws IOException
Deprecated. Replaced by getTimeToLive()

Gets the time-to-live (TTL) for multicast packets sent on this socket.

Returns:
the time-to-live option as a byte value.
Throws:
IOException - if an error occurs while getting the time-to-live option value.
Since:
Android 1.0
See Also:
getTimeToLive()

getTimeToLive

protected abstract int getTimeToLive()
                              throws IOException
Gets the time-to-live (TTL) for multicast packets sent on this socket. The TTL option defines how many routers a packet may be pass before it is discarded.

Returns:
the time-to-live option as an integer value.
Throws:
IOException - if an error occurs while getting the time-to-live option value.
Since:
Android 1.0

join

protected abstract void join(InetAddress addr)
                      throws IOException
Adds this socket to the multicast group addr. A socket must join a group before being able to receive data. Further, a socket may be a member of multiple groups but may join any group only once.

Parameters:
addr - the multicast group to which this socket has to be joined.
Throws:
IOException - if an error occurs while joining the specified multicast group.
Since:
Android 1.0

joinGroup

protected abstract void joinGroup(SocketAddress addr,
                                  NetworkInterface netInterface)
                           throws IOException
Adds this socket to the multicast group addr. A socket must join a group before being able to receive data. Further, a socket may be a member of multiple groups but may join any group only once.

Parameters:
addr - the multicast group to which this socket has to be joined.
netInterface - the local network interface which will receive the multicast datagram packets.
Throws:
IOException - if an error occurs while joining the specified multicast group.
Since:
Android 1.0

leave

protected abstract void leave(InetAddress addr)
                       throws IOException
Removes this socket from the multicast group addr.

Parameters:
addr - the multicast group to be left.
Throws:
IOException - if an error occurs while leaving the group or no multicast address was assigned.
Since:
Android 1.0

leaveGroup

protected abstract void leaveGroup(SocketAddress addr,
                                   NetworkInterface netInterface)
                            throws IOException
Removes this socket from the multicast group addr.

Parameters:
addr - the multicast group to be left.
netInterface - the local network interface on which this socket has to be removed.
Throws:
IOException - if an error occurs while leaving the group.
Since:
Android 1.0

peek

protected abstract int peek(InetAddress sender)
                     throws IOException
Peeks at the incoming packet to this socket and returns the address of the sender. The method will block until a packet is received or timeout expires.

Parameters:
sender - the origin address of a packet.
Returns:
the address of sender as an integer value.
Throws:
IOException - if an error or a timeout occurs while reading the address.
Since:
Android 1.0

receive

protected abstract void receive(DatagramPacket pack)
                         throws IOException
Receives data and stores it in the supplied datagram packet pack. This call will block until either data has been received or, if a timeout is set, the timeout has expired. If the timeout expires an InterruptedIOException is thrown.

Parameters:
pack - the datagram packet container to fill in the received data.
Throws:
IOException - if an error or timeout occurs while receiving data.
Since:
Android 1.0

send

protected abstract void send(DatagramPacket pack)
                      throws IOException
Sends the given datagram packet pack. The packet contains the data and the address and port information of the target host as well.

Parameters:
pack - the datagram packet to be sent.
Throws:
IOException - if an error occurs while sending the packet.
Since:
Android 1.0

setOption

public abstract void setOption(int optID,
                               Object val)
                        throws SocketException
Sets the value for the specified socket option.

Specified by:
setOption in interface SocketOptions
Parameters:
optID - the ID of the socket option to be set.
val - the value of the option.
Throws:
SocketException - if an error occurs while setting the option.
Since:
Android 1.0

setTimeToLive

protected abstract void setTimeToLive(int ttl)
                               throws IOException
Sets the time-to-live (TTL) option for multicast packets sent on this socket.

Parameters:
ttl - the time-to-live option value. Valid values are 0 < ttl <= 255.
Throws:
IOException - if an error occurs while setting the option.
Since:
Android 1.0

setTTL

@Deprecated
protected abstract void setTTL(byte ttl)
                        throws IOException
Deprecated. Replaced by setTimeToLive(int)

Sets the time-to-live (TTL) option for multicast packets sent on this socket.

Parameters:
ttl - the time-to-live option value. Valid values are 0 < ttl <= 255.
Throws:
IOException - if an error occurs while setting the option.
Since:
Android 1.0
See Also:
setTimeToLive(int)

connect

protected void connect(InetAddress inetAddr,
                       int port)
                throws SocketException
Connects this socket to the specified remote address and port.

Parameters:
inetAddr - the address of the target host which has to be connected.
port - the port on the target host which has to be connected.
Throws:
SocketException - if the datagram socket cannot be connected to the specified remote address and port.
Since:
Android 1.0

disconnect

protected void disconnect()
Disconnects this socket from the remote host.

Since:
Android 1.0

peekData

protected abstract int peekData(DatagramPacket pack)
                         throws IOException
Receives data into the supplied datagram packet by peeking. The data is not removed from socket buffer and can be received again by another peekData() or receive() call. This call blocks until either data has been received or, if a timeout is set, the timeout has been expired.

Parameters:
pack - the datagram packet used to store the data.
Returns:
the port the packet was received from.
Throws:
IOException - if an error occurs while peeking at the data.
Since:
Android 1.0

Build 1.1_r1 (from source)

Please submit a feedback, bug or feature