|
|
|
@@ -263,6 +263,12 @@ namespace SocketHelpers |
|
|
|
|
|
|
|
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;
|
|
|
|
|
|
|
|
#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
|
|
|
|
|
|
|
|
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();
|
|
|
|
|
|
|
|
handle = (int) socket (AF_INET, SOCK_DGRAM, 0);
|
|
|
|
SocketHelpers::makeReusable (handle);
|
|
|
|
bindToPort (localPortNumber);
|
|
|
|
}
|
|
|
|
|
|
|
|
|