All Packages Class Hierarchy This Package Previous Next Index
java.lang.Object
|
+----java.net.DatagramSocket
|
+----java.net.MulticastSocket
A multicast group is specified by a class D IP address, those
in the range 224.0.0.1 to 239.255.255.255,
inclusive, and by a standard UDP port number. One would join a
multicast group by first creating a MulticastSocket with the desired
port, then invoking the joinGroup(InetAddress groupAddr)
method:
// join a Multicast group and send the group salutations
...
byte[] msg = {'H', 'e', 'l', 'l', 'o'};
InetAddress group = InetAddress.getByName("228.5.6.7");
MulticastSocket s = new MulticastSocket(6789);
s.joinGroup(group);
DatagramPacket hi = new DatagramPacket(msg, msg.length,
group, 6789);
s.send(hi);
// get their responses!
byte[] buf = new byte[1000];
DatagramPacket recv = new DatagramPacket(buf, buf.length);
s.receive(recv);
...
// OK, I'm done talking - leave the group...
s.leaveGroup(group);
When one sends a message to a multicast group, all subscribing
recipients to that host and port receive the message (within the
time-to-live range of the packet, see below). The socket needn't
be a member of the multicast group to send messages to it.
When a socket subscribes to a multicast group/port, it receives datagrams sent by other hosts to the group/port, as do all other members of the group and port. A socket relinquishes membership in a group by the leaveGroup(InetAddress addr) method. Multiple MulticastSocket's may subscribe to a multicast group and port concurrently, and they will all receive group datagrams.
Currently applets are not allowed ot use multicast sockets.
method MulticastSocket() public Signals IOException
method MulticastSocket(port=int) public Signals IOException
method setTTL(ttl=byte) public Signals IOException
DatagramPackets sent to a MulticastGroup, which
specifies how many "hops" that the packet will be forwarded
on the network before it expires.
The ttl is an unsigned 8-bit quantity, and so must be
in the range 0 < ttl <= 0xFF .
method getTTL() returns byte public Signals IOException
method joinGroup(mcastaddr=InetAddress) public Signals IOException
method leaveGroup(mcastaddr=InetAddress) public Signals IOException
method setInterface(inf=InetAddress) public Signals SocketException
method getInterface() returns InetAddress public Signals SocketException
method send(p=DatagramPacket, -
ttl=byte) public protect Signals IOException
All Packages Class Hierarchy This Package Previous Next Index