gnu.java.net
Class PlainDatagramSocketImpl
- SocketOptions
This is the default socket implementation for datagram sockets.
It makes native calls to C routines that implement BSD style
SOCK_DGRAM sockets in the AF_INET family.
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 |
protected void | bind(int port, InetAddress addr) - Binds this socket to a particular port and interface
|
protected void | close() - Closes the socket
|
protected void | connect(InetAddress addr, int port) - Connects the socket to a host specified by address and port.
|
protected void | create() - Creates a new datagram socket
|
protected void | disconnect() - Disconnects the socket.
|
protected void | finalize() - Called on an object by the Virtual Machine at most once,
at some point after the Object is determined unreachable
but before it is destroyed.
|
int | getNativeFD()
|
Object | getOption(int option_id) - Retrieves the value of an option on the socket
|
protected byte | getTTL() - 1.2
|
protected int | getTimeToLive() - Gets the Time to Live value for the socket
|
protected void | join(InetAddress addr) - Joins a multicast group
|
protected void | joinGroup(SocketAddress mcastaddr, NetworkInterface netIf) - Causes this socket to join the specified multicast group on a specified
device
|
protected void | leave(InetAddress addr) - Leaves a multicast group
|
protected void | leaveGroup(SocketAddress mcastaddr, NetworkInterface netIf) - Leaves a multicast group
|
protected int | peek(InetAddress addr) - Takes a peek at the next packet received in order to retrieve the
address of the sender
|
protected int | peekData(DatagramPacket packet) - Takes a peek at the next packet received.
|
protected void | receive(DatagramPacket packet) - Receives a UDP packet from the network
|
protected void | send(DatagramPacket packet) - Sends a packet of data to a remote host
|
void | setOption(int option_id, Object val) - Sets the value of an option on the socket
|
protected void | setTTL(byte ttl) - 1.2
|
protected void | setTimeToLive(int ttl) - Sets the Time to Live value for the socket
|
bind , close , connect , create , disconnect , getFileDescriptor , getLocalPort , getTTL , getTimeToLive , join , joinGroup , leave , leaveGroup , peek , peekData , receive , send , setTTL , setTimeToLive |
clone , equals , extends Object> getClass , finalize , hashCode , notify , notifyAll , toString , wait , wait , wait |
finalize
protected void finalize()
throws Throwable
Called on an object by the Virtual Machine at most once,
at some point after the Object is determined unreachable
but before it is destroyed. You would think that this
means it eventually is called on every Object, but this is
not necessarily the case. If execution terminates
abnormally, garbage collection does not always happen.
Thus you cannot rely on this method to always work.
For finer control over garbage collection, use references
from the
java.lang.ref
package.
Virtual Machines are free to not call this method if
they can determine that it does nothing important; for
example, if your class extends Object and overrides
finalize to do simply
super.finalize()
.
finalize() will be called by a
Thread
that has no
locks on any Objects, and may be called concurrently.
There are no guarantees on the order in which multiple
objects are finalized. This means that finalize() is
usually unsuited for performing actions that must be
thread-safe, and that your implementation must be
use defensive programming if it is to always work.
If an Exception is thrown from finalize() during garbage
collection, it will be patently ignored and the Object will
still be destroyed.
It is allowed, although not typical, for user code to call
finalize() directly. User invocation does not affect whether
automatic invocation will occur. It is also permitted,
although not recommended, for a finalize() method to "revive"
an object by making it reachable from normal code again.
Unlike constructors, finalize() does not get called
for an object's superclass unless the implementation
specifically calls
super.finalize()
.
The default implementation does nothing.
- finalize in interface Object
Throwable
- permits a subclass to throw anything in an
overridden version; but the default throws nothing
peekData
protected int peekData(DatagramPacket packet)
throws IOException
Takes a peek at the next packet received. This packet is not consumed.
With the next peekData/receive operation this packet will be read again.
- peekData in interface DatagramSocketImpl
- The port number of the sender of the packet.
PlainDatagramSocketImpl.java -- Default DatagramSocket implementation
Copyright (C) 1998, 1999, 2001, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version.