Передача изображений броузеру через сокет |
Здравствуйте, гость ( Вход | Регистрация )
Передача изображений броузеру через сокет |
PotapovPV |
28.4.2010, 22:23
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 7 Регистрация: 28.4.2010 Пользователь №: 1672 Спасибо сказали: 0 раз(а) Репутация: 0 |
Возникла задача по написанию эмулятора веб-сервера: приложение получает xml-файл, из которого считывает инструкции по формированию ответов в зависимости от запросов (фактически, формирует пары запрос-ответ, и укладывает их в QMap), после чего начинает принимать через сокет с 80 порта запросы от браузеров и выдавать заранее определенные ответы.
Ответы формируются следующим образом: из xml-файла с помощью SAX лепится QString со стартовой строкой и заголовками, из которого делается QHttpResponseHeader. Так же из передаваемого файла (html, jpg и пр.) с помощью QTextStream считываются данные в QString, а затем все это запихивается в структуру: struct { QHttpResponseHeader; qstrBody QString; } Когда запрос надо отправлять - QHttpResponseHeader преобразуется к строке, к ней QString.append("\r\n"), QString.append(qstrBody), и эта строка благополучно отправляется в сокет. С HTML файлами схема работает - получаются и отображаются корректно. А вот изображения браузером отображаться никак не хотят... Поймал пакет с ответом, содержащим изображение снифером, написано "This is not a valid JFIF (JPEG) object" Кто-нибудь может что-нибудь посоветовать? Скорее всего суть в том, что для чтения jpeg-файла нужно применять какие-то другие методы? Изначально была мысль что я что-то забываю с заголовками, но вроде все уже перепробовал... |
|
|
azure |
29.4.2010, 8:30
Сообщение
#2
|
Студент Группа: Участник Сообщений: 60 Регистрация: 24.12.2009 Пользователь №: 1332 Спасибо сказали: 5 раз(а) Репутация: 0 |
Поймал пакет с ответом, содержащим изображение снифером, написано "This is not a valid JFIF (JPEG) object" Кто-нибудь может что-нибудь посоветовать? Скорее всего суть в том, что для чтения jpeg-файла нужно применять какие-то другие методы? Изначально была мысль что я что-то забываю с заголовками, но вроде все уже перепробовал... Используйте QByteArray. |
|
|
PotapovPV |
6.5.2010, 18:21
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 7 Регистрация: 28.4.2010 Пользователь №: 1672 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
Текстовая версия | Сейчас: 28.3.2024, 12:36 |