Отправка файла MOV через TCP - PullRequest
0 голосов
/ 16 марта 2012

Я хочу отправить файл mov передачи через TCP-клиент / сервер.Как я должен знать, где заканчивается файл?Когда я отправлял XML-файл, это было легко, искать ноль во входящем байте [] вырезать, сохранить его, ТАМ XML-файл готов.Как насчет файла MOV?

Ответы [ 3 ]

0 голосов
/ 16 марта 2012

Сначала отправьте размер файла, затем содержимое.

0 голосов
/ 16 марта 2012

У вас есть два пути. Самый простой (но немного подверженный ошибкам) ​​- закройте соединение после завершения отправки файла. Получатель узнает, что соединение отключено, и поймет, что файл готов.

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

Второй способ - сначала отправить длину файла, затем файл.

0 голосов
/ 16 марта 2012

Более общая форма вашего вопроса, как определить конец любого TCP-пакета, имеет несколько разных решений. Ваш первый способ был искать нулевой терминатор. Я бы сказал, что лучшим способом будет префикс вашего потока int, представляющий длину файла .MOV Тогда вы точно знаете, сколько байтов нужно прочитать.

...