diff options
author | Mark Wielaard <mark@klomp.org> | 2001-10-01 18:24:54 +0000 |
---|---|---|
committer | Mark Wielaard <mark@gcc.gnu.org> | 2001-10-01 18:24:54 +0000 |
commit | 477946a63dee474c725243ae0d998f4cba1bfc0a (patch) | |
tree | 4dda11c70f74fbaee3eeeac3ddfd3597c909ea23 /libjava/java/net/MulticastSocket.java | |
parent | be55d07d6f4666c031950dc610bdb3fe85c007b5 (diff) | |
download | gcc-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.java | 156 |
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 |