Non-blocking I/O and sockets on Unix-like systems