zócalo no bloqueante, el error es siempre

sock.setblocking(0)
try:
    data = sock.recv(1024)
 except socket.error, e:
    if e.args[0] == errno.EWOULDBLOCK: 
          print 'EWOULDBLOCK'
else:            
   if not data:   #recv over
      sock.close()
      print 'close================='       
   else:
      print 'recv ---data---------'
      poem += data

todo el código anterior está en un bucle.non-blocking socket(solo quiero probar 'socket no bloqueante') para obtener datos. Pero siempre imprima 'EWOULDBLOCK', no sé por qué?

Respuestas a la pregunta(2)

Su respuesta a la pregunta