BR: StreamingSocket::waitUntilReady() silently fails on Windows

StreamingSocket::waitUntilReady() silently fails on Windows

        fd_set rset, wset;
        FD_ZERO (&rset);
        FD_SET ((SOCKET) h, &rset);
        FD_ZERO (&wset);
        FD_SET ((SOCKET) h, &wset);

The value of h must be < FD_SETSIZE, but this isn’t tested and worked around in anyway. Luckily Windows is actually smart enough to check this and not corrupt the stack, like macOS and Linux do. (Luckily waitUntilReady doesn’t use FD_SET on macOS or Linux)

FD_SETSIZE is very low on Windows, only 64. So if you have more than 64 sockets open in your process, this function won’t work, unless JUCE increased the size of FD_SETSIZE somewhere I’m not seeing.

There is a comment WSAPoll is broken and can’t be used, but doesn’t say how it’s broken. (I think it has to do with how it doesn’t handle closed sockets the same way poll does)