'Return ``True`` if new data can be read from the socket.'

def can_read(self, timeout=0.0):

    (r, w, e) = ([self.sock], [], [])
    try:
        (r, w, e) = select.select(r, w, e, timeout)
    except select.error as err:
        if (err.args[0] == EINTR):
            return False
        self._abort()
    return (self.sock in r)
