Разница в jpg-файле: из потока Wireshark TCP и из сокета C ++ - PullRequest
0 голосов
/ 13 января 2012

Я пытаюсь записать изображение JPEG, отправленное камерой Ethernet, в поток mjpg. Изображение, которое я получаю с помощью моего приложения Borland C ++ (VSPCIP), в Notepad ++ выглядит идентично потоку tcp, сохраненному из приложения Wireshark (за исключением количества символов: 15540 в моем файле и 15342 в файле wireshark, тогда как jpeg content- длина объявлена ​​15342). То есть у меня на 198 не отображаемых символов больше, чем ожидалось, но в обоих файлах по 247 строк.

Вот два файла: http://demo.ovh.com/fr/a61295d39f963998ba1244da2f55a27d/

Какой инструмент можно использовать (в Notepad ++ (я пытался отобразить в UTF8 или ANSI: файлы по-прежнему совпадают, в то время как они не имеют одинаковое количество символов) или в другом редакторе) для просмотра неотображаемых символов?

1 Ответ

1 голос
/ 13 января 2012

std::ofstream по умолчанию открывает файл в текстовом режиме, что означает, что он может переводить символы новой строки ('\n' двоичные 0x0a) в последовательность возврата каретки / новой строки ("\r\n", двоичные 0x0d и 0x0a).

Откройте выходной файл в двоичном режиме, и он, скорее всего, решит вашу проблему:

std::ofstream os("filename", ios_base::out | ios_base::binary);
...