java.net
Class MulticastSocket

java.lang.Object
  extended by java.net.DatagramSocket
      extended by java.net.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
 int getTimeToLive()
          Returns the current value of the "Time to Live" option.
 byte getTTL()
          Deprecated. 1.2 Replaced by getTimeToLive()
 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 setTimeToLive(int ttl)
          Sets the "Time to Live" value for a socket.
 void setTTL(byte ttl)
          Deprecated. 1.2 Replaced by setTimeToLive
 
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, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

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 Detail

getInterface

public InetAddress getInterface()
                         throws SocketException
Returns the interface being used for multicast packets

Returns:
The multicast interface
Throws:
SocketException - If an error occurs

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
See Also:
getTimeToLive()

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

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

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
See Also:
getNetworkInterface()

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:
setNetworkInterface(NetworkInterface netIf)

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

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

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:
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

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

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

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:
setInterface(InetAddress addr), setNetworkInterface(NetworkInterface netIf)

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:
setInterface(InetAddress addr), 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