Blocking and non-blocking sockets. When would you prefer to use one over the other, and why?