aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/net/MulticastSocket.java
diff options
context:
space:
mode:
authorMark Wielaard <mark@klomp.org>2001-10-01 18:24:54 +0000
committerMark Wielaard <mark@gcc.gnu.org>2001-10-01 18:24:54 +0000
commit477946a63dee474c725243ae0d998f4cba1bfc0a (patch)
tree4dda11c70f74fbaee3eeeac3ddfd3597c909ea23 /libjava/java/net/MulticastSocket.java
parentbe55d07d6f4666c031950dc610bdb3fe85c007b5 (diff)
downloadgcc-477946a63dee474c725243ae0d998f4cba1bfc0a.zip
gcc-477946a63dee474c725243ae0d998f4cba1bfc0a.tar.gz
gcc-477946a63dee474c725243ae0d998f4cba1bfc0a.tar.bz2
FileWriter.java: Merge with Classpath.
* java/io/FileWriter.java: Merge with Classpath. * java/io/FilterInputStream.java: Ditto. (mark): no longer synchronized (reset): Likewise * java/io/FilterOutputStream.java: Merge with Classpath. * java/io/FilterReader.java: Ditto. (mark): no longer synchronized (reset): Likewise * java/io/FilterWriter.java: Merge with Classpath. * java/io/Writer.java: Ditto. * java/lang/Compiler.java: Ditto. * java/lang/Process.java: Ditto. * java/lang/Void.java: Ditto. * java/net/ContentHandler.java: Ditto. * java/net/DatagramPacket.java: Ditto. * java/net/MulticastSocket.java: Merge comments with Classpath. From-SVN: r45930
Diffstat (limited to 'libjava/java/net/MulticastSocket.java')
-rw-r--r--libjava/java/net/MulticastSocket.java156
1 files changed, 136 insertions, 20 deletions
diff --git a/libjava/java/net/MulticastSocket.java b/libjava/java/net/MulticastSocket.java
index c5bee02..a782cff 100644
--- a/libjava/java/net/MulticastSocket.java
+++ b/libjava/java/net/MulticastSocket.java
@@ -1,50 +1,108 @@
-// MulticastSocket.java
-
-/* Copyright (C) 1999, 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
+/* MulticastSocket.java -- Class for using multicast sockets
+ Copyright (C) 1998, 1999, 2000, 2001 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., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA.
+
+As a special exception, if you link this library with other files to
+produce an executable, this library does not by itself cause the
+resulting executable to be covered by the GNU General Public License.
+This exception does not however invalidate any other reasons why the
+executable file might be covered by the GNU General Public License. */
package java.net;
-import java.io.IOException;
-/**
- * @author Warren Levy <warrenl@cygnus.com>
- * @date May 18, 1999.
- */
+import java.io.IOException;
-/**
+/*
* Written using on-line Java Platform 1.2 API Specification, as well
* as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
* Status: Believed complete and correct.
*/
+/**
+ * This class models a multicast UDP socket. A multicast address is a
+ * class D internet address (one whose most significant bits are 1110).
+ * A multicast group consists of a multicast address and a well known
+ * port number. All members of the group listening on that address and
+ * port will receive all the broadcasts to the group.
+ * <p>
+ * Please note that applets are not allowed to use multicast sockets
+ *
+ * Written using on-line Java Platform 1.2 API Specification, as well
+ * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
+ * Status: Believed complete and correct.
+ *
+ * @author Warren Levy <warrenl@cygnus.com>
+ * @author Aaron M. Renn (arenn@urbanophile.com) (Documentation comments)
+ * @date May 18, 1999.
+ */
public class MulticastSocket extends DatagramSocket
{
// FIXME: the local addr bound to the multicast socket can be reused;
// unlike unicast sockets. It binds to any available network interface.
// See p.1159 JCL book.
+/**
+ * Create a MulticastSocket that this not bound to any address
+ *
+ * @exception IOException If an error occurs
+ */
public MulticastSocket() throws IOException
{
super(0, ServerSocket.ANY_IF);
}
+/**
+ * Create a multicast socket bound to the specified port
+ *
+ * @param The port to bind to
+ *
+ * @exception IOException If an error occurs
+ */
public MulticastSocket(int port) throws IOException
{
super(port, ServerSocket.ANY_IF);
}
+/**
+ * Returns the interface being used for multicast packets
+ *
+ * @return The multicast interface
+ *
+ * @exception SocketException If an error occurs
+ */
public InetAddress getInterface() throws SocketException
{
// FIXME: Is it possible that an InetAddress wasn't returned from getOption?
return (InetAddress) impl.getOption(SocketOptions.IP_MULTICAST_IF);
}
- // Deprecated in JDK1.2
+/**
+ * Returns the current value of the "Time to Live" option. This is the
+ * number of hops a packet can make before it "expires". This method id
+ * deprecated. Use <code>getTimeToLive</code> instead.
+ *
+ * @return The TTL value
+ *
+ * @exception IOException If an error occurs
+ *
+ * @deprecated Replaced by getTimeToLive() in Java 1.2
+ */
public byte getTTL() throws IOException
{
// Use getTTL here rather than getTimeToLive in case we're using an impl
@@ -53,18 +111,43 @@ public class MulticastSocket extends DatagramSocket
return impl.getTTL();
}
- // JDK1.2
+/**
+ * Returns the current value of the "Time to Live" option. This is the
+ * number of hops a packet can make before it "expires".
+ *
+ * @return The TTL value
+ *
+ * @exception IOException If an error occurs
+ *
+ * @since Java 1.2
+ */
public int getTimeToLive() throws IOException
{
return impl.getTimeToLive();
}
+/**
+ * Sets the interface to use for multicast packets.
+ *
+ * @param addr The new interface to use
+ *
+ * @exception SocketException If an error occurs
+ */
public void setInterface(InetAddress inf) throws SocketException
{
impl.setOption(SocketOptions.IP_MULTICAST_IF, inf);
}
- // Deprecated in JDK1.2
+/**
+ * Sets the "Time to Live" value for a socket. The value must be between
+ * 1 and 255.
+ *
+ * @param ttl The new TTL value
+ *
+ * @exception IOException If an error occurs
+ *
+ * @deprecated Replaced by <code>setTimeToLive</code> in Java 1.2
+ */
public void setTTL(byte ttl) throws IOException
{
// Use setTTL here rather than setTimeToLive in case we're using an impl
@@ -73,7 +156,16 @@ public class MulticastSocket extends DatagramSocket
impl.setTTL(ttl);
}
- // JDK1.2
+/**
+ * Sets the "Time to Live" value for a socket. The value must be between
+ * 1 and 255.
+ *
+ * @param ttl The new TTL value
+ *
+ * @exception IOException If an error occurs
+ *
+ * @since Java 1.2
+ */
public void setTimeToLive(int ttl) throws IOException
{
if (ttl <= 0 || ttl > 255)
@@ -82,6 +174,13 @@ public class MulticastSocket extends DatagramSocket
impl.setTimeToLive(ttl);
}
+/**
+ * Joins the specified mulitcast group.
+ *
+ * @param addr The address of the group to join
+ *
+ * @exception IOException If an error occurs
+ */
public void joinGroup(InetAddress mcastaddr) throws IOException
{
if (! mcastaddr.isMulticastAddress())
@@ -94,6 +193,13 @@ public class MulticastSocket extends DatagramSocket
impl.join(mcastaddr);
}
+/**
+ * Leaves the specified multicast group
+ *
+ * @param addr The address of the group to leave
+ *
+ * @exception IOException If an error occurs
+ */
public void leaveGroup(InetAddress mcastaddr) throws IOException
{
if (! mcastaddr.isMulticastAddress())
@@ -106,6 +212,16 @@ public class MulticastSocket extends DatagramSocket
impl.leave(mcastaddr);
}
+/**
+ * Sends a packet of data to a multicast address with a TTL that is
+ * different from the default TTL on this socket. The default TTL for
+ * the socket is not changed.
+ *
+ * @param packet The packet of data to send
+ * @param ttl The TTL for this packet
+ *
+ * @exception IOException If an error occurs
+ */
public synchronized void send(DatagramPacket p, byte ttl) throws IOException
{
SecurityManager s = System.getSecurityManager();
@@ -123,4 +239,4 @@ public class MulticastSocket extends DatagramSocket
impl.send(p);
impl.setTimeToLive(oldttl);
}
-}
+} // class MulticastSocket