|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
public interface MulticastChannel
A network channel that supports Internet Protocol (IP) multicasting.
IP multicasting is the transmission of IP datagrams to members of a group that is zero or more hosts identified by a single destination address.
In the case of a channel to an IPv4
socket, the underlying operating system supports RFC 2236: Internet Group
Management Protocol, Version 2 (IGMPv2). It may optionally support
source filtering as specified by RFC 3376: Internet Group
Management Protocol, Version 3 (IGMPv3). For channels to an
IPv6 socket, the equivalent
standards are RFC 2710:
Multicast Listener Discovery (MLD) for IPv6 and RFC 3810: Multicast Listener
Discovery Version 2 (MLDv2) for IPv6.
The join(InetAddress,NetworkInterface) method is used to join a
group and receive all multicast datagrams sent to the group. A channel
may join several multicast groups and may join the same group on several
interfaces. Membership is dropped by invoking
the drop method on the returned
MembershipKey. If the underlying platform supports source
filtering then the block and
unblock methods can be used to block or
unblock multicast datagrams from particular source addresses.
The join(InetAddress,NetworkInterface,InetAddress) method is
used to begin receiving datagrams sent to a group whose source address
matches a given source address. This method throws
UnsupportedOperationException if the underlying platform does not
support source filtering. Membership is accumulative and this
method may be invoked again with the same group and interface to allow
receiving datagrams from other source addresses. The method returns a
MembershipKey that represents membership to receive datagrams
from the given source address. Invoking the key's
drop method drops membership so that datagrams
from the source address can no longer be received.
ProtocolFamily that corresponds to the address type of the
multicast groups that the channel will join. There is no guarantee that a
channel to a socket in one protocol family can join and receive multicast
datagrams when the address of the multicast group corresponds to another
protocol family. For example, it is implementation specific if a channel
to an IPv6 socket can join an
IPv4 multicast group and receive
multicast datagrams sent to the group.
wildcard address. If the socket
is bound to a specific address, rather than the wildcard address then it
is implementation specific if multicast datagrams are received by the
socket.
SO_REUSEADDR option
should be enabled prior to NetworkChannel.bind(java.net.SocketAddress) binding the
socket. This is required to allow multiple members of the group to bind
to the same address.
// join multicast group on this interface, and also use this
// interface for outgoing multicast datagrams
NetworkInterface ni = NetworkInterface.getByName("hme0");
DatagramChannel dc = DatagramChannel.open(StandardProtocolFamily.INET)
.setOption(StandardSocketOption.SO_REUSEADDR, true)
.bind(new InetSocketAddress(5000))
.setOption(StandardSocketOption.IP_MULTICAST_IF, ni);
InetAddress group = InetAddress.getByName("225.4.5.6");
MembershipKey key = dc.join(group, ni);
| Method Summary | |
|---|---|
MembershipKey |
join(InetAddress group,
NetworkInterface interf)
Joins a multicast group to begin receiving all datagrams sent to the group, returning a membership key. |
MembershipKey |
join(InetAddress group,
NetworkInterface interf,
InetAddress source)
Joins a multicast group to begin receiving datagrams sent to the group from a given source address. |
| Methods inherited from interface com.sun.sgs.nio.channels.NetworkChannel |
|---|
bind, getLocalAddress, getOption, options, setOption |
| Methods inherited from interface java.nio.channels.Channel |
|---|
close, isOpen |
| Method Detail |
|---|
MembershipKey join(InetAddress group,
NetworkInterface interf)
throws IOException
If this channel is currently a member of the group on the given
interface to receive all datagrams then the membership key,
representing that membership, is returned. Otherwise this channel
joins the group and the resulting new membership key is returned. The
resulting membership key is not
source-specific.
A multicast channel may join several multicast groups, including the same group on more than one interface. An implementation may impose a limit on the number of groups that may be joined at the same time.
group - the multicast address to joininterf - the network interface on which to join the group
IllegalArgumentException - if the group parameter is not a
multicast address,
or the group parameter is an address type that is not
supported by this channel
IllegalStateException - if the channel is already has
source-specific membership of the group on the interface
ClosedChannelException - if this channel is closed
IOException - if an I/O error occurs
SecurityException - if a security manager is set, and its
checkMulticast
method denies access to the multiast group
MembershipKey join(InetAddress group,
NetworkInterface interf,
InetAddress source)
throws IOException
If this channel is currently a member of the group on the given
interface to receive datagrams from the given source address then the
membership key, representing that membership, is returned. Otherwise
this channel joins the group and the resulting new membership key is
returned. The resulting membership key is
source-specific.
Membership is accumulative and this method may be invoked again
with the same group and interface to allow receiving datagrams sent by
other source addresses to the group. This method fails, by throwing
IllegalStateException, if the channel is currently a member to
receive all datagrams sent to the group on the interface.
group - the multicast address to joininterf - the network interface on which to join the groupsource - the source address
IllegalArgumentException - if the group parameter is not a
multicast address,
or the source parameter is not a unicast
address, or the group parameter is an address type that is
not supported by this channel, or the source parameter is not
the same address type as the group
IllegalStateException - if the channel is currently a member of
the group on the given interface to receive all datatagrams
UnsupportedOperationException - if the underlying operation
system does not support source filtering
ClosedChannelException - if this channel is closed
IOException - if an I/O error occurs
SecurityException - if a security manager is set, and its
checkMulticast
method denies access to the multiast group
|
RedDwarf, Version 0.10.1 2010-03-14 10:56:12 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||