Server.py 文件源码

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

项目:AsyncFTP 作者: helloqiu 项目源码 文件源码
def sendfile(self, path):
        with open(path, mode='r') as file:
            offset = 0
            blocksize = os.path.getsize(path)
            logger.debug("RETR DTP Server is waiting for writable.")
            while True:
                if self.sock_client:
                    break
                await sleep(1)
            await self.sock_client.writeable()
            logger.debug("RETR DTP Server is writable.")
            while True:
                try:
                    sent = sendfile(self.sock_client.fileno(), file.fileno(), offset, blocksize)
                except BlockingIOError:
                    continue
                logger.debug("RETR DTP Server send {}".format(offset))
                if sent == 0:
                    await self.sock_client.close()
                    await self.client.sendall(parse_message(226, 'Transfer complete.'))
                    await self.close()
                    break
                offset += sent
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号