QTcpSocket: несколько ReadyReads при отправке большого файла

Я хочу отправить файл размером 1 МБ со скоростью 200 КБ / с (передача 5 секунд) с использованием QTcpSocket. Функция слота ReadyRead сначала считывает размер файла (заголовок), затем запускает поток, который блокирует при чтении байтов file_size из сокета. Но, поскольку функция слота readyRead завершается до того, как происходит передача файла, не появятся ли новые вызовы для функции readyRead (сгенерированные новые ReadyReads), которые могут помешать?

я читаю здесь: Как сделать так, чтобы сигналы readyRead () от QTcpSocket не могли быть пропущены? что пока вы находитесь в функции слота, новые ReadyReads не будут генерироваться.

0

Решение

очевидным решением моей собственной проблемы было бы отключить () сигнал readyread () от функции slot внутри функции slot, если это возможно.

0

Другие решения

Вам не нужно начинать отдельный поток. Просто справляйся с каждым readyRead() сигнал и добавьте новые данные в файл. В конце концов весь файл будет получен.

Вам не нужно получать всю передачу за один раз, просто запишите файл по частям за раз.

0

По вопросам рекламы [email protected]