title: Can select() be used with files in Python under Windows?
body: <p>I am trying to run the following python server under windows:</p>
  
  <pre><code>"""
  An echo server that uses select to handle multiple clients at a time.
  Entering any line of input at the terminal will exit the server.
  """
  
  import select
  import socket
  import sys
  
  host = ''
  port = 50000
  backlog = 5
  size = 1024
  server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  server.bind((host,port))
  server.listen(backlog)
  input = [server,sys.stdin]
  running = 1
  while running:
      inputready,outputready,exceptready = select.select(input,[],[])
  
      for s in inputready:
  
          if s == server:
              # handle the server socket
              client, address = server.accept()
              input.append(client)
  
          elif s == sys.stdin:
              # handle standard input
              junk = sys.stdin.readline()
              running = 0
  
          else:
              # handle all other sockets
              data = s.recv(size)
              if data:
                  s.send(data)
              else:
                  s.close()
                  input.remove(s)
  server.close() 
  </code></pre>
  
  <p>I get the error message (10038, 'An operation was attempted on something that is not a socket'). This probably relates back to <a href="http://docs.python.org/library/select.html#module-select">the remark</a> in the python documentation that "File objects on Windows are not acceptable, but sockets are. On Windows, the underlying select() function is provided by the WinSock library, and does not handle file descriptors that don’t originate from WinSock.". On internet there are quite some posts on this topic, but they are either too technical for me or simply not clear. So my question is: is there any way the select() statement in python can be used under windows? Please add a little example or modify my code above. Thanks!</p>