Название: Передача файлов по tcp Отправлено: demaker от Август 07, 2017, 20:41 Хочу передать файл по TCP. Сначала передаю размер файла.
Затем разбиваю его поблочно(по 1024) и передаю. Код: ... Я так понимаю в последнем блоке в конце будет мусор. Код: int nblocks = sizeFile/1024; Название: Re: Передача файлов по tcp Отправлено: Apktyc от Август 07, 2017, 21:05 А зачем вообще делать так? Размер пакета все равно определит протокол.
А так QByteArray::chop (http://doc.qt.io/qt-4.8/qbytearray.html#chop) Название: Re: Передача файлов по tcp Отправлено: demaker от Август 07, 2017, 21:52 А зачем вообще делать так? Размер пакета все равно определит протокол. А как тогда?А так QByteArray::chop (http://doc.qt.io/qt-4.8/qbytearray.html#chop) типа Код: socket->write(file.readAll()); Название: Re: Передача файлов по tcp Отправлено: qate от Август 07, 2017, 22:55 если файл небольшой, то можно и socket->write(file.readAll());
если гигабайты, то либо свой протокол, разбивая по кускам размером в N мегабайт, тогда и прогресс будет на обоих концах можно посмотреть как делают передачу такие программы как scp можно торрент, но затык в начале будет, но удобно когда надо раздать 2м и более Название: Re: Передача файлов по tcp Отправлено: demaker от Август 08, 2017, 08:16 если файл небольшой, то можно и socket->write(file.readAll()); если гигабайты, то либо свой протокол, разбивая по кускам размером в N мегабайт, тогда и прогресс будет на обоих концах можно посмотреть как делают передачу такие программы как scp можно торрент, но затык в начале будет, но удобно когда надо раздать 2м и более А вот я в начале привел пример поблочной передачи. Так норм или нет? Название: Re: Передача файлов по tcp Отправлено: Old от Август 08, 2017, 08:24 Код
Название: Re: Передача файлов по tcp Отправлено: qate от Август 09, 2017, 10:43 А вот я в начале привел пример поблочной передачи. Так норм или нет? для больших файлов так не норм т.к. неудобно будет без прогресса приема и передачи, без отмены зависит от задачи а чтобы хоть както работало пойдет вариант с qbytearray вышеуказанный Название: Re: Передача файлов по tcp Отправлено: demaker от Август 09, 2017, 17:37 Ясно :)
Спасибо. |