aiofiles python отправляет файл кусками через поток

Я пытаюсь отправить файл с помощью aiofiles через асинхронные сокеты, файл отправляется, но отправка не останавливается, пока я не убью сервер, не уверен, что я здесь делаю неправильно. Я пробовал несколько примеров, но не повезло с ними, похоже, не работает как обычный файл python io, когда этот код попадает в запись в цикле, он просто застревает там

клиент

       async with aiofiles.open(fp, mode="rb",loop=loop) as fileread:  

            print (str(fileread))
            chunksize = 0
             

            while True:
                content = await fileread.read(1000)   #async await

                contentstr = str(content)

                while content:


                    await writer1.write(content)

                    await writer1.drain()

                if not content:

                    break


                    writer1.close()

                    file_sent = 1
                    print ("done reading")

сервер

   if numberx != 0:
    async with aiofiles.open(filename, mode = "wb") as file:
        
        while True:
            data = await reader.read(1000)
                                         
                                       
            while data:
                await file.write(data)
                await file.flush()                 

            file.close()    
                  
                    
            if not data:
                writer.close()
            
                
                break               

0 ответов

Другие вопросы по тегам