title: select.select() does not catch exceptional condition on socket?
body: <p>Python 2.7, Windows XP. I have a server that sends messages to client(s). I use select module to check for sockets ready to receive, as well as to catch exceptional conditions. I was under the impression that if a client closed a socket, select() would return said socket in the socket list of exceptional conditions, but it doesn't seem to be doing so: </p>
  
  <pre><code>lin, lout, lex = select.select(socklist, socklist, socklist)
  for sock in lin: 
      # handle incoming messages
  for sock in lout: 
      # send updates
  for sock in lex: 
      # shut down server-side objects for particular client
  </code></pre>
  
  <p>What would be the best way for the server to determine whether the client is still connected? The server is not always sending data, so I would like not to have to rely on a socket.send() to test whether the client is still there.</p>