fails:Socket::BasicSocket#recv_nonblock raises EAGAIN if there's no data available
fails:Socket::BasicSocket#recv_nonblock receives data after it's ready
fails:Socket::BasicSocket#recv_nonblock does not block if there's no data available
