Class DatagramSocketImpl
java.lang.Object
java.net.DatagramSocketImpl
- All Implemented Interfaces:
- SocketOptions
Abstract datagram and multicast socket implementation base class.
- Since:
- 1.1
- 
Field SummaryFieldsModifier and TypeFieldDescriptionprotected FileDescriptorThe file descriptor object.protected intThe local port number.Fields declared in interface java.net.SocketOptionsIP_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_REUSEPORT, SO_SNDBUF, SO_TIMEOUT, TCP_NODELAY
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionprotected abstract voidbind(int lport, InetAddress laddr) Binds a datagram socket to a local port and address.protected abstract voidclose()Close the socket.protected voidconnect(InetAddress address, int port) Connects a datagram socket to a remote destination.protected abstract voidcreate()Creates a datagram socket.protected voidDisconnects a datagram socket from its remote destination.protected FileDescriptorGets the datagram socket file descriptor.protected intGets the local port.protected <T> TgetOption(SocketOption<T> name) Called to get a socket option.protected abstract intRetrieve the TTL (time-to-live) option.protected abstract bytegetTTL()Deprecated, for removal: This API element is subject to removal in a future version.use getTimeToLive instead.protected abstract voidjoin(InetAddress inetaddr) Join the multicast group.protected abstract voidjoinGroup(SocketAddress mcastaddr, NetworkInterface netIf) Join the multicast group.protected abstract voidleave(InetAddress inetaddr) Leave the multicast group.protected abstract voidleaveGroup(SocketAddress mcastaddr, NetworkInterface netIf) Leave the multicast group.protected abstract intpeek(InetAddress i) Peek at the packet to see who it is from.protected abstract intPeek at the packet to see who it is from.protected abstract voidReceive the datagram packet.protected abstract voidSends a datagram packet.protected <T> voidsetOption(SocketOption<T> name, T value) Called to set a socket option.protected abstract voidsetTimeToLive(int ttl) Set the TTL (time-to-live) option.protected abstract voidsetTTL(byte ttl) Deprecated, for removal: This API element is subject to removal in a future version.use setTimeToLive instead.protected Set<SocketOption<?>> Returns a set of SocketOptions supported by this impl and by this impl's socket (DatagramSocket or MulticastSocket)Methods declared in class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods declared in interface java.net.SocketOptionsgetOption, setOption
- 
Field Details- 
localPortprotected int localPortThe local port number.
- 
fdThe file descriptor object.
 
- 
- 
Constructor Details- 
DatagramSocketImplpublic DatagramSocketImpl()Constructor for subclasses to call.
 
- 
- 
Method Details- 
createCreates a datagram socket.- Throws:
- SocketException- if there is an error in the underlying protocol, such as a TCP error.
 
- 
bindBinds 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.
 
- 
sendSends 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.
 
- 
connectConnects 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. - Implementation Requirements:
- The default implementation of this method throws SocketException.
- 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
 
- 
disconnectprotected void disconnect()Disconnects a datagram socket from its remote destination.- Implementation Requirements:
- The default implementation of this method throws UncheckedIOException.
- Throws:
- UncheckedIOException- if disconnect fails or no implementation is provided
- Since:
- 1.4
 
- 
peekPeek at the packet to see who it is from. Updates the specifiedInetAddressto the address which the packet came from.- Parameters:
- i- an InetAddress object
- Returns:
- the port number 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.
 
- 
peekDataPeek at the packet to see who it is from. The data is copied into the specifiedDatagramPacket. 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 port number 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
 
- 
receiveReceive 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@Deprecated(forRemoval=true, since="1.2") protected abstract void setTTL(byte ttl) throws IOException Deprecated, for removal: This API element is subject to removal in a future version.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:
 
- 
getTTLDeprecated, for removal: This API element is subject to removal in a future version.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:
 
- 
setTimeToLiveSet the TTL (time-to-live) option.- Parameters:
- ttl- an- intspecifying the time-to-live value
- Throws:
- IOException- if an I/O exception occurs while setting the time-to-live option.
- See Also:
 
- 
getTimeToLiveRetrieve the TTL (time-to-live) option.- Returns:
- an intrepresenting the time-to-live value
- Throws:
- IOException- if an I/O exception occurs while retrieving the time-to-live option
- See Also:
 
- 
joinJoin the multicast group.- Parameters:
- inetaddr- multicast address to join.
- Throws:
- IOException- if an I/O exception occurs while joining the multicast group.
 
- 
leaveLeave the multicast group.- Parameters:
- inetaddr- multicast address to leave.
- Throws:
- IOException- if an I/O exception occurs while leaving the multicast group.
 
- 
joinGroupprotected 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
 
- 
leaveGroupprotected 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
 
- 
closeprotected abstract void close()Close the socket.
- 
getLocalPortprotected int getLocalPort()Gets the local port.- Returns:
- an intrepresenting the local port value
 
- 
getFileDescriptorGets the datagram socket file descriptor.- Returns:
- a FileDescriptorobject representing the datagram socket file descriptor
 
- 
setOptionCalled to set a socket option.- Implementation Requirements:
- The default implementation of this method first checks that the given
 socket option nameis not null, then throwsUnsupportedOperationException. Subclasses should override this method with an appropriate implementation.
- Type Parameters:
- T- The type of the socket option value
- Parameters:
- name- The socket option
- value- The value of the socket option. A value of- nullmay be valid for some options.
- Throws:
- UnsupportedOperationException- if the DatagramSocketImpl does not support the option
- IllegalArgumentException- if the value is not valid for the option
- IOException- if an I/O error occurs, or if the socket is closed
- NullPointerException- if name is- null
- Since:
- 9
 
- 
getOptionCalled to get a socket option.- Implementation Requirements:
- The default implementation of this method first checks that the given
 socket option nameis not null, then throwsUnsupportedOperationException. Subclasses should override this method with an appropriate implementation.
- Type Parameters:
- T- The type of the socket option value
- Parameters:
- name- The socket option
- Returns:
- the socket option
- Throws:
- UnsupportedOperationException- if the DatagramSocketImpl does not support the option
- IOException- if an I/O error occurs, or if the socket is closed
- NullPointerException- if name is- null
- Since:
- 9
 
- 
supportedOptionsReturns a set of SocketOptions supported by this impl and by this impl's socket (DatagramSocket or MulticastSocket)- Implementation Requirements:
- The default implementation of this method returns an empty set. Subclasses should override this method with an appropriate implementation.
- Returns:
- a Set of SocketOptions
- Since:
- 9
 
 
-