Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| JavaTM 2 Platform Std. Ed. v1.4.1
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## java.net
Class DatagramSocketImpl

    java.lang.Object
      |
      +--java.net.DatagramSocketImpl

All Implemented Interfaces:
  SocketOptions

public abstract class DatagramSocketImpl
extends Object
implements SocketOptions

Abstract datagram and multicast socket implementation base class.

Since:
  JDK1.1

Field Summary
`protected FileDescriptor` | `fd` The file descriptor object.
`protected int` | `localPort` The local port number.

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()`

Method Summary
`protected abstract void` | `bind(int lport, InetAddress laddr)` Binds a datagram socket to a local port and address.
`protected abstract void` | `close()` Close the socket.
`protected void` | `connect(InetAddress address, int port)` Connects a datagram socket to a remote destination.
`protected abstract void` | `create()` Creates a datagram socket.
`protected void` | `disconnect()` Disconnects a datagram socket from its remote destination.
`protected FileDescriptor` | `getFileDescriptor()` Gets the datagram socket file descriptor.
`protected int` | `getLocalPort()` Gets the local port.
`protected abstract int` | `getTimeToLive()` Retrieve the TTL (time-to-live) option.
`protected abstract byte` | `getTTL()` Deprecated. use getTimeToLive instead.
`protected abstract void` | `join(InetAddress inetaddr)` Join the multicast group.
`protected abstract void` | `joinGroup(SocketAddress mcastaddr, NetworkInterface netIf)` Join the multicast group.
`protected abstract void` | `leave(InetAddress inetaddr)` Leave the multicast group.
`protected abstract void` | `leaveGroup(SocketAddress mcastaddr, NetworkInterface netIf)` Leave the multicast group.
`protected abstract int` | `peek(InetAddress i)` Peek at the packet to see who it is from.
`protected abstract int` | `peekData(DatagramPacket p)` Peek at the packet to see who it is from.
`protected abstract void` | `receive(DatagramPacket p)` Receive the datagram packet.
`protected abstract void` | `send(DatagramPacket p)` Sends a datagram packet.
`protected abstract void` | `setTimeToLive(int ttl)` Set the TTL (time-to-live) option.
`protected abstract void` | `setTTL(byte ttl)` Deprecated. use setTimeToLive instead.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface java.net.SocketOptions
`getOption, setOption`

Field Detail

### localPort

    protected int localPort

  The local port number.

### fd

    protected FileDescriptor fd

  The file descriptor object.

Constructor Detail

### DatagramSocketImpl

    public DatagramSocketImpl()

Method Detail

### create

    protected abstract void create()
                            throws SocketException

  Creates a datagram socket.

  Throws:
    `SocketException` - if there is an error in the underlying protocol, such as a TCP error.

### bind

    protected abstract void bind(int lport,
                                 InetAddress laddr)
                          throws SocketException

  Binds a datagram socket to a local port and address.

  Parameters:
    `lport` - the local port
    `laddr` - the local address
  Throws:
    `SocketException` - if there is an error in the underlying protocol, such as a TCP error.

### send

    protected abstract void send(DatagramPacket p)
                          throws IOException

  Sends a datagram packet. The packet contains the data and the destination address to send the packet to.

  Parameters:
    `p` - the packet to be sent.
  Throws:
    `IOException` - if an I/O exception occurs while sending the datagram packet.
    `PortUnreachableException` - may be thrown if the socket is connected to a currently unreachable destination. Note, there is no guarantee that the exception will be thrown.

### connect

    protected void connect(InetAddress address,
                           int port)
                    throws SocketException

  Connects a datagram socket to a remote destination. This associates the remote address with the local socket so that datagrams may only be sent to this destination and received from this destination. This may be overridden to call a native system connect.

  If the remote destination to which the socket is connected does not exist, or is otherwise unreachable, and if an ICMP destination unreachable packet has been received for that address, then a subsequent call to send or receive may throw a PortUnreachableException. Note, there is no guarantee that the exception will be thrown.

  Parameters:
    `address` - the remote InetAddress to connect to
    `port` - the remote port number
  Throws:
    `SocketException` - may be thrown if the socket cannot be connected to the remote destination
  Since:
    1.4

### disconnect

    protected void disconnect()

  Disconnects a datagram socket from its remote destination.

  Since:
    1.4

### peek

    protected abstract int peek(InetAddress i)
                         throws IOException

  Peek at the packet to see who it is from.

  Parameters:
    `i` - an InetAddress object
  Returns:
    the address which the packet came from.
  Throws:
    `IOException` - if an I/O exception occurs
    `PortUnreachableException` - may be thrown if the socket is connected to a currently unreachable destination. Note, there is no guarantee that the exception will be thrown.

### peekData

    protected abstract int peekData(DatagramPacket p)
                             throws IOException

  Peek at the packet to see who it is from. The data is returned, but not consumed, so that a subsequent peekData/receive operation will see the same data.

  Parameters:
    `p` - the Packet Received.
  Returns:
    the address which the packet came from.
  Throws:
    `IOException` - if an I/O exception occurs
    `PortUnreachableException` - may be thrown if the socket is connected to a currently unreachable destination. Note, there is no guarantee that the exception will be thrown.
  Since:
    1.4

### receive

    protected abstract void receive(DatagramPacket p)
                             throws IOException

  Receive the datagram packet.

  Parameters:
    `p` - the Packet Received.
  Throws:
    `IOException` - if an I/O exception occurs while receiving the datagram packet.
    `PortUnreachableException` - may be thrown if the socket is connected to a currently unreachable destination. Note, there is no guarantee that the exception will be thrown.

### setTTL

    protected abstract void setTTL(byte ttl)
                            throws IOException

  Deprecated. use setTimeToLive instead.

  Set the TTL (time-to-live) option.

  Parameters:
    `ttl` - a byte specifying the TTL value
  Throws:
    `IOException` - if an I/O exception occurs while setting the time-to-live option.
  See Also:
    `getTTL()`

### getTTL

    protected abstract byte getTTL()
                            throws IOException

  Deprecated. use getTimeToLive instead.

  Retrieve the TTL (time-to-live) option.

  Returns:
    a byte representing the TTL value
  Throws:
    `IOException` - if an I/O exception occurs while retrieving the time-to-live option
  See Also:
    `setTTL(byte)`

### setTimeToLive

    protected abstract void setTimeToLive(int ttl)
                                   throws IOException

  Set the TTL (time-to-live) option.

  Parameters:
    `ttl` - an `int` specifying the time-to-live value
  Throws:
    `IOException` - if an I/O exception occurs while setting the time-to-live option.
  See Also:
    `getTimeToLive()`

### getTimeToLive

    protected abstract int getTimeToLive()
                                  throws IOException

  Retrieve the TTL (time-to-live) option.

  Returns:
    an `int` representing the time-to-live value
  Throws:
    `IOException` - if an I/O exception occurs while retrieving the time-to-live option
  See Also:
    `setTimeToLive(int)`

### join

    protected abstract void join(InetAddress inetaddr)
                          throws IOException

  Join the multicast group.

  Parameters:
    `inetaddr` - multicast address to join.
  Throws:
    `IOException` - if an I/O exception occurs while joining the multicast group.

### leave

    protected abstract void leave(InetAddress inetaddr)
                           throws IOException

  Leave the multicast group.

  Parameters:
    `inetaddr` - multicast address to leave.
  Throws:
    `IOException` - if an I/O exception occurs while leaving the multicast group.

### joinGroup

    protected abstract void joinGroup(SocketAddress mcastaddr,
                                      NetworkInterface netIf)
                               throws IOException

  Join the multicast group.

  Parameters:
    `mcastaddr` - address to join.
    `netIf` - specifies the local interface to receive multicast datagram packets
  Throws:
    `IOException` - if an I/O exception occurs while joining the multicast group
  Since:
    1.4

### leaveGroup

    protected abstract void leaveGroup(SocketAddress mcastaddr,
                                       NetworkInterface netIf)
                                throws IOException

  Leave the multicast group.

  Parameters:
    `mcastaddr` - address to leave.
    `netIf` - specified the local interface to leave the group at
  Throws:
    `IOException` - if an I/O exception occurs while leaving the multicast group
  Since:
    1.4

### close

    protected abstract void close()

  Close the socket.

### getLocalPort

    protected int getLocalPort()

  Gets the local port.

  Returns:
    an `int` representing the local port value

### getFileDescriptor

    protected FileDescriptor getFileDescriptor()

  Gets the datagram socket file descriptor.

  Returns:
    a `FileDescriptor` object representing the datagram socket file descriptor

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| JavaTM 2 Platform Std. Ed. v1.4.1
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Submit a bug or feature
For further API reference and developer documentation, see Java 2 SDK SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Copyright 2002 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.