PupySocketStream.py 文件源码

python
阅读 26 收藏 0 点赞 0 评论 0

项目:pupy 作者: ru-faraon 项目源码 文件源码
def _poll_read(self, timeout=None):
        if not self.client_side:
            return self.upstream.wait(timeout)
        self.sock.settimeout(timeout)
        try:
            buf, addr=self.sock.recvfrom(self.MAX_IO_CHUNK)
        except socket.timeout:
            self.total_timeout+=timeout
            if self.total_timeout>300:
                self.sock.close() # too much inactivity, disconnect to let it reconnect
            return False
        except socket.error:
            ex = sys.exc_info()[1]
            if get_exc_errno(ex) in (errno.EAGAIN, errno.EWOULDBLOCK):
                # windows just has to be a bitch
                return True
            self.close()
            raise EOFError(ex)
        if not buf:
            self.close()
            raise EOFError("connection closed by peer")
        self.buf_in.write(BYTES_LITERAL(buf))
        self.total_timeout=0
        return True
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号