Hi
It was not so easy, but I've found it for you!
According to
this thread, the Rogue's answer, socket notification is also done with task signals, so I think that you should give a long vacation to WaitSelect(), check the signal number of the socket, create a mask with all signals you need, and give a chance to Wait()...
The other solution could be two tasks - one for socket, the other for GUI. But you'll have to make yourself a possibility to wake up the task waiting on socket somehow, at least to have the ability to close it, while the is no activity on socket.
But to be honest - I have NULL Reaction experience.
Good luck