Look at IP multicasting and IPv6
--------------------------------
Key: JGRP-638
URL:
http://jira.jboss.com/jira/browse/JGRP-638
Project: JGroups
Issue Type: Task
Reporter: Bela Ban
Assigned To: Bela Ban
Priority: Minor
Fix For: 2.7
Attachments: SimpleMulticast.java
[Carlo DeWolf's email]
Bug 1:
Aha, in IPv6 mode the incorrect interface is chosen to send out packets.
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4742177
So to actually get the right sender into the packet you must bind to the
address.
MultiSocket senderSocket = new MultiSocket(new
InetSocketAddress(sendFrom, 0));
Loopback must always be false. I'm not sure why, but if falls apart if
you set it to true. (Might be because of the above.)
senderSocket.setLoopback(false);
The receiving socket must be bound to INADDR_ANY (because of Windows):
receiverSocket = new MultiSocket(port);
Bug 2:
The receiver socket must join with an interface, because else the
packets sent from the sendSocket are immediately blocked by the
interface (not a member of the group).
receiverSocket.joinGroup(mcastaddr, netIf); // Note that port in
mcastaddr is ignored.
I think it's also possible to have the sendSocket join, but I'm done.
The effect here was that as long as nobody joins on the default
multicast interface, nobody receives packets. This would seldomly occur,
because there is always someone who joins the default interface.
I've attached by own multicast tester. Which works in every config
except on Windows with the counterfeit, doubtful, dubious, equivocal,
fake, false, fictitious, inaccurate, mythical, spurious,
unauthenticated, ungenuine, unsubstantiated, untrue, unverified, wrong
"MS TCP loopback" device.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira