title: How can I determine if a non-blocking socket is really connected?
body: <p>This question is not limited to Python. Its a general socket question. I have a non-blocking socket and want to connect to a machine which is reachable - on the other side the port does not exist. Why does select(...) succeed anyway? I expected a timeout. sock.send(...) fails with a broken pipe. How can I determine if the socket is really connected after select(...)?
  Thanks in advance.</p>
  
  <pre><code>import socket, errno, os, time, select
  
  sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  sock.setblocking(0)
  err = sock.connect_ex(('192.168.178.21', 12345))
  ready_to_read, ready_to_write, in_error = select.select([], [sock], [], timeout=5)
  #ready_to_write is set even 192.168.178.21:12345 does not exist.
  
  sock.setblocking(1)
  sock.send('foo') #this fails
  sock.close()
  </code></pre>