def read(self, n):
buffer = []
while self.offset < self.file_size:
try:
data = self.stream.read(min(n, self.file_size - self.offset))
self.offset += len(data)
n -= len(data)
buffer.append(data)
if n == 0 or data:
break
except socket.timeout:
self._progress()
self._restart()
except socket.error as e:
if e.errno != errno.ECONNRESET:
raise
self._progress()
self._restart()
return "".join(buffer)
评论列表
文章目录