| @@ -263,6 +263,12 @@ namespace SocketHelpers | |||||
| return true; | return true; | ||||
| } | } | ||||
| static void makeReusable (int handle) noexcept | |||||
| { | |||||
| const int reuse = 1; | |||||
| setsockopt (handle, SOL_SOCKET, SO_REUSEADDR, (const char*) &reuse, sizeof (reuse)); | |||||
| } | |||||
| } | } | ||||
| //============================================================================== | //============================================================================== | ||||
| @@ -419,8 +425,7 @@ bool StreamingSocket::createListener (const int newPortNumber, const String& loc | |||||
| return false; | return false; | ||||
| #if ! JUCE_WINDOWS // on windows, adding this option produces behaviour different to posix | #if ! JUCE_WINDOWS // on windows, adding this option produces behaviour different to posix | ||||
| const int reuse = 1; | |||||
| setsockopt (handle, SOL_SOCKET, SO_REUSEADDR, (const char*) &reuse, sizeof (reuse)); | |||||
| SocketHelpers::makeReusable (handle); | |||||
| #endif | #endif | ||||
| if (bind (handle, (struct sockaddr*) &servTmpAddr, sizeof (struct sockaddr_in)) < 0 | if (bind (handle, (struct sockaddr*) &servTmpAddr, sizeof (struct sockaddr_in)) < 0 | ||||
| @@ -472,6 +477,7 @@ DatagramSocket::DatagramSocket (const int localPortNumber, const bool canBroadca | |||||
| SocketHelpers::initSockets(); | SocketHelpers::initSockets(); | ||||
| handle = (int) socket (AF_INET, SOCK_DGRAM, 0); | handle = (int) socket (AF_INET, SOCK_DGRAM, 0); | ||||
| SocketHelpers::makeReusable (handle); | |||||
| bindToPort (localPortNumber); | bindToPort (localPortNumber); | ||||
| } | } | ||||