Understanding non blocking sockets