diff --git a/modules/juce_core/network/juce_Socket.cpp b/modules/juce_core/network/juce_Socket.cpp index 7b1b5605904a..768849ab5ad6 100644 --- a/modules/juce_core/network/juce_Socket.cpp +++ b/modules/juce_core/network/juce_Socket.cpp @@ -797,6 +797,14 @@ bool DatagramSocket::joinMulticast (const String& multicastIPAddress) return SocketHelpers::multicast (handle, multicastIPAddress, lastBindAddress, true); } + +bool DatagramSocket::joinMulticast (const String& multicastIPAddress, const String& localIPAddress) +{ + if (handle < 0 || ! isBound) + return false; + + return SocketHelpers::multicast (handle, multicastIPAddress, localIPAddress, true); +} bool DatagramSocket::leaveMulticast (const String& multicastIPAddress) { @@ -805,6 +813,14 @@ bool DatagramSocket::leaveMulticast (const String& multicastIPAddress) return SocketHelpers::multicast (handle, multicastIPAddress, lastBindAddress, false); } + +bool DatagramSocket::leaveMulticast (const String& multicastIPAddress, const String& localIPAddress) +{ + if (handle < 0 || ! isBound) + return false; + + return SocketHelpers::multicast (handle, multicastIPAddress, localIPAddress, false); +} bool DatagramSocket::setMulticastLoopbackEnabled (bool enable) { diff --git a/modules/juce_core/network/juce_Socket.h b/modules/juce_core/network/juce_Socket.h index 58f9c859d880..c878cb1b7bbb 100644 --- a/modules/juce_core/network/juce_Socket.h +++ b/modules/juce_core/network/juce_Socket.h @@ -425,12 +425,16 @@ class JUCE_API DatagramSocket final @returns true if it succeeds */ bool joinMulticast (const String& multicastIPAddress); + + bool joinMulticast (const String& multicastIPAddress, const String& localIPAddress); /** Leave a multicast group. @returns true if it succeeds */ bool leaveMulticast (const String& multicastIPAddress); + + bool leaveMulticast (const String& multicastIPAddress, const String& localIPAddress); /** Enables or disables multicast loopback.