title: Non-blocking sockets in Python
body: <p>I was looking at the socket programming module of the python standard library and I noticed a fucntion <code>socket.setblocking</code>. The documentation mentioned that setting a socket to non blocking mode would mean that an error would be raised if the data was not sent out through the socket immediately or if data was not available upon trying to read from the socket.</p>
  
  <p>I'm having trouble understanding usecases in which this function might be useful. I'm working on a Linux machine(just in case the answer to this would be OS dependent).</p>
  
  <p>Thanks!</p>