java.net

Class MulticastSocket


public class MulticastSocket
extends DatagramSocket

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.

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.

Since:
1.1

Constructor Summary

MulticastSocket()
Create a MulticastSocket that this not bound to any address
MulticastSocket(int port)
Create a multicast socket bound to the specified port
MulticastSocket(SocketAddress address)
Create a multicast socket bound to the specified SocketAddress.

Method Summary

InetAddress
getInterface()
Returns the interface being used for multicast packets
boolean
getLoopbackMode()
Checks if local loopback mode is enabled
NetworkInterface
getNetworkInterface()
Gets the local network interface which is used to send multicast messages
byte
getTTL()
Deprecated. 1.2 Replaced by getTimeToLive()
int
getTimeToLive()
Returns the current value of the "Time to Live" option.
void
joinGroup(InetAddress mcastaddr)
Joins the specified multicast group.
void
joinGroup(SocketAddress mcastaddr, NetworkInterface netIf)
Joins the specified mulitcast group on a specified interface.
void
leaveGroup(InetAddress mcastaddr)
Leaves the specified multicast group
void
leaveGroup(SocketAddress mcastaddr, NetworkInterface netIf)
Leaves the specified mulitcast group on a specified interface.
void
send(DatagramPacket packet, byte ttl)
Deprecated.
void
setInterface(InetAddress addr)
Sets the interface to use for sending multicast packets.
void
setLoopbackMode(boolean disable)
Disable/Enable local loopback of multicast packets.
void
setNetworkInterface(NetworkInterface netIf)
Sets the local network interface used to send multicast messages
void
setTTL(byte ttl)
Deprecated. 1.2 Replaced by setTimeToLive
void
setTimeToLive(int ttl)
Sets the "Time to Live" value for a socket.

Methods inherited from class java.net.DatagramSocket

bind, close, connect, connect, disconnect, getBroadcast, getChannel, getInetAddress, getLocalAddress, getLocalPort, getLocalSocketAddress, getPort, getReceiveBufferSize, getRemoteSocketAddress, getReuseAddress, getSendBufferSize, getSoTimeout, getTrafficClass, isBound, isClosed, isConnected, receive, send, setBroadcast, setDatagramSocketImplFactory, setReceiveBufferSize, setReuseAddress, setSendBufferSize, setSoTimeout, setTrafficClass

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Details

MulticastSocket

public MulticastSocket()
            throws IOException
Create a MulticastSocket that this not bound to any address
Throws:
IOException - If an error occurs
SecurityException - If a security manager exists and its checkListen method doesn't allow the operation

MulticastSocket

public MulticastSocket(int port)
            throws IOException
Create a multicast socket bound to the specified port
Parameters:
port - The port to bind to
Throws:
IOException - If an error occurs
SecurityException - If a security manager exists and its checkListen method doesn't allow the operation

MulticastSocket

public MulticastSocket(SocketAddress address)
            throws IOException
Create a multicast socket bound to the specified SocketAddress.
Parameters:
address - The SocketAddress the multicast socket will be bound to
Throws:
IOException - If an error occurs
SecurityException - If a security manager exists and its checkListen method doesn't allow the operation
Since:
1.4

Method Details

getInterface

public InetAddress getInterface()
            throws SocketException
Returns the interface being used for multicast packets
Returns:
The multicast interface
Throws:
SocketException - If an error occurs

getLoopbackMode

public boolean getLoopbackMode()
            throws SocketException
Checks if local loopback mode is enabled
Returns:
true if loopback mode is enabled, false otherwise
Throws:
SocketException - If an error occurs
Since:
1.4

getNetworkInterface

public NetworkInterface getNetworkInterface()
            throws SocketException
Gets the local network interface which is used to send multicast messages
Returns:
The local network interface to send multicast messages
Throws:
SocketException - If an error occurs
Since:
1.4
See Also:
MulticastSocket.setNetworkInterface(NetworkInterface netIf)

getTTL

public byte getTTL()
            throws IOException

Deprecated. 1.2 Replaced by getTimeToLive()

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 getTimeToLive instead.
Returns:
The TTL value
Throws:
IOException - If an error occurs

getTimeToLive

public int getTimeToLive()
            throws IOException
Returns the current value of the "Time to Live" option. This is the number of hops a packet can make before it "expires".
Returns:
The TTL value
Throws:
IOException - If an error occurs
Since:
1.2

joinGroup

public void joinGroup(InetAddress mcastaddr)
            throws IOException
Joins the specified multicast group.
Parameters:
mcastaddr - The address of the group to join
Throws:
IOException - If an error occurs
SecurityException - If a security manager exists and its checkMulticast method doesn't allow the operation

joinGroup

public void joinGroup(SocketAddress mcastaddr,
                      NetworkInterface netIf)
            throws IOException
Joins the specified mulitcast group on a specified interface.
Parameters:
mcastaddr - The multicast address to join
netIf - The local network interface to receive the multicast messages on or null to defer the interface set by #setInterface or #setNetworkInterface
Throws:
IOException - If an error occurs
IllegalArgumentException - If address type is not supported
SecurityException - If a security manager exists and its checkMulticast method doesn't allow the operation
Since:
1.4
See Also:
MulticastSocket.setInterface(InetAddress addr), MulticastSocket.setNetworkInterface(NetworkInterface netIf)

leaveGroup

public void leaveGroup(InetAddress mcastaddr)
            throws IOException
Leaves the specified multicast group
Parameters:
mcastaddr - The address of the group to leave
Throws:
IOException - If an error occurs
SecurityException - If a security manager exists and its checkMulticast method doesn't allow the operation

leaveGroup

public void leaveGroup(SocketAddress mcastaddr,
                       NetworkInterface netIf)
            throws IOException
Leaves the specified mulitcast group on a specified interface.
Parameters:
mcastaddr - The multicast address to leave
netIf - The local networki interface or null to defer to the interface set by setInterface or setNetworkInterface
Throws:
IOException - If an error occurs
IllegalArgumentException - If address type is not supported
SecurityException - If a security manager exists and its checkMulticast method doesn't allow the operation
Since:
1.4
See Also:
MulticastSocket.setInterface(InetAddress addr), MulticastSocket.setNetworkInterface(NetworkInterface netIf)

send

public void send(DatagramPacket packet,
                 byte ttl)
            throws IOException

Deprecated.

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.
Parameters:
packet - The packet of data to send
ttl - The TTL for this packet
Throws:
IOException - If an error occurs
SecurityException - If a security manager exists and its checkConnect or checkMulticast method doesn't allow the operation

setInterface

public void setInterface(InetAddress addr)
            throws SocketException
Sets the interface to use for sending multicast packets.
Parameters:
addr - The new interface to use.
Throws:
SocketException - If an error occurs.
Since:
1.4

setLoopbackMode

public void setLoopbackMode(boolean disable)
            throws SocketException
Disable/Enable local loopback of multicast packets. The option is used by the platform's networking code as a hint for setting whether multicast data will be looped back to the local socket. Because this option is a hint, applications that want to verify what loopback mode is set to should call #getLoopbackMode
Parameters:
disable - True to disable loopback mode
Throws:
SocketException - If an error occurs
Since:
1.4

setNetworkInterface

public void setNetworkInterface(NetworkInterface netIf)
            throws SocketException
Sets the local network interface used to send multicast messages
Parameters:
netIf - The local network interface used to send multicast messages
Throws:
SocketException - If an error occurs
Since:
1.4

setTTL

public void setTTL(byte ttl)
            throws IOException

Deprecated. 1.2 Replaced by setTimeToLive

Sets the "Time to Live" value for a socket. The value must be between 1 and 255.
Parameters:
ttl - The new TTL value
Throws:
IOException - If an error occurs
See Also:
MulticastSocket.setTimeToLive(int ttl)

setTimeToLive

public void setTimeToLive(int ttl)
            throws IOException
Sets the "Time to Live" value for a socket. The value must be between 0 and 255, inclusive.
Parameters:
ttl - The new TTL value
Throws:
IOException - If an error occurs
Since:
1.2

MulticastSocket.java -- Class for using multicast sockets Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 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.