Есть ли какие-либо стандарты по упаковке потока данных для передачи файлов?
По типу сначала имя файла, метаданные, сами данные файла и тд
Или как это всё происходит, желательно ссылки на статьи или хотя бы дайте направление где можно найти что-то полезное
Другие языки программирования и технологии
Есть ли какие-либо стандарты по упаковки потока данных для передачи файлов?
Стандарт по упаковке потока файлов называет tar - tape archive. 40 лет работает под юниксами, изначально архивировал файлы на ленту
Для упаковки потока (не важно чего) можно использовать gzip. Его понимают буквально все.
Есть поновее, поэффективнее bzip2. То же самое, но он сложнее.
В сумме получаем примерно любимый zip, только чтобы распаковать zip нужно получить весь файл целиком, а здесь фишка в том, что можно распаковывать потоком прямо из сети. Например, при наличии на диске 11Гб свободного места вполне можно принять и распаковать10Гб архив.
Для упаковки потока (не важно чего) можно использовать gzip. Его понимают буквально все.
Есть поновее, поэффективнее bzip2. То же самое, но он сложнее.
В сумме получаем примерно любимый zip, только чтобы распаковать zip нужно получить весь файл целиком, а здесь фишка в том, что можно распаковывать потоком прямо из сети. Например, при наличии на диске 11Гб свободного места вполне можно принять и распаковать10Гб архив.
Василий Меньшиков
Zip замечательно распаковывается на лету. И запаковывается вроде тоже. Просто обычный софт, которым все пользуются, не поддерживает этот режим.
есть протоколы, но они разные, и можно создать свои
Файлы можно запаковывать в zip-архив. Это может работать в потоке. Не обязательно использовать сжатие. Это не стандарт, просто один из вариантов.
можно на хотя бы тот же простой и понятный FTP протокол посмотреть, а дальше уже рассмотреть другие виды
Машраб Xxx
Я просто пока сам разбирался как сделать передачу файлов что-то да надумал, то есть например передача разбивается на 2 части, в первой передаётся вес файла, а во второй уже имя; метаданные; данные. И у меня в принципе всё работало, но вот как это работает у других я понятия не имею. Да тот же самый фтп. Что написано на вики, передача файла идёт байт за байтом. И это многого не даёт. Вот например как тот же самый браузер всегда понимает что у файла отвечает за имя, что за вес, где сами данные, он ведь всегда трактует это правильно, значит должен быть какой-то стандарт, но вот найти какой-то более подробной информации что да как я не могу
Нет никаких стандартов. Всё вытекает из логики и потребностей твоей программы.
1. Можно передавать по UDP, можно по TCP.
2. Можно заголовок представлять в виде "упакованной" структуры, а можно в виде выравненной по 4/8/16 байт (а).
3. Значения полей можно передавать как Little Endian или Big endian.
https://en.wikipedia.org/wiki/Endianness#Networking
В HTTP, FTP, SMTP избавились от проблем со структурами, передавая метаданные в виде обычного текста. Jabber-клиенты (ICQ, QIP, и т. п.) передают всё в XML. И вообще, сейчас прямо какая-то мода всё передавать в XML/JSON.
1. Можно передавать по UDP, можно по TCP.
2. Можно заголовок представлять в виде "упакованной" структуры, а можно в виде выравненной по 4/8/16 байт (а).
3. Значения полей можно передавать как Little Endian или Big endian.
https://en.wikipedia.org/wiki/Endianness#Networking
В HTTP, FTP, SMTP избавились от проблем со структурами, передавая метаданные в виде обычного текста. Jabber-клиенты (ICQ, QIP, и т. п.) передают всё в XML. И вообще, сейчас прямо какая-то мода всё передавать в XML/JSON.
Похожие вопросы
- Для передачи файлов в печать в типографию достаточно чтобы эти файлы имели расширение PDF?
- Скажите Возможно-ли подключится к удалённому компьютеру через поток данных (ну когда передаёш файлы через SKYPE
- Где хранятся данные, записываемые в файл?
- Считывание данных из текстового файла С++
- Как занести данные считанные из файла в массив на языке си?
- Delphi 2010 + LAN + передача файлов = ???
- Скажите пожалуйста как передать данные из текстового файла в массив на php
- Подключил комп и ноут кабелем crossover network. что делать дальше для передаче файлов с одного компа на другой?
- какой диск(болванка) нужен для передачи файла (игра)?
- PHP. Что быстрее? Записывать данные в txt файл или в БД?