Details
-
Task
-
Resolution: Done
-
Major
-
None
-
None
Description
Currently, due to [1], we use a MulticastSocket to receive multicast packets, but a DatagramSocket to send multicast packets (and send and receive unicast packets).
The reason was that we needed to get the IP address and port of the sender of a message. Due to a programming error, this was not the case earlier.
Now, I changed the code to use a MulticastSocket instead of a DatagramSocket to send multicasts (and send/receive unicasts).
Works perfectly and performance (4 nodes) is about the same.
In addition, we can now call MulticastSocket.setTimeToLive(), even on Windows, preventing the exception trying to set ip_ttl on Windows (java.net.DualStackPlainDatagramSocketImpl.setTimeToLive()).
[1] https://issues.jboss.org/browse/JGRP-1765
[2] https://github.com/belaban/JGroups/wiki/FAQ