![]() |
|
Модераторы: Snowy, Poseidon, MetalFan |
![]()
|
|
| Max_Rendel |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 24.2.2007 Где: г.Благовещенск Репутация: нет Всего: нет |
Поправте пожалуйста!
Задумка: По нажатию кнопки, клиент предаёт картинку серверу одним пакетом (!!!обязательно не сохраняя её предварительно на диске!!! размер картинки от 3кб до 20кб), после принятия картинки сервер помещает её в Image1. Вот клиент:
Вот сервер:
На сервре выскакиает ошибка: JPEG error #42 Что я делаю не так? |
||||
|
|||||
| Exai1e |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 908 Регистрация: 3.12.2006 Где: Moscow Репутация: нет Всего: 30 |
а размер посланный и принятый сверял ?
мб теряется заголовок Добавлено @ 16:07 попробуй сохранить принятые данные в стим/фаил и открыть win средствами Это сообщение отредактировал(а) Exai1e - 11.5.2008, 16:07 -------------------- "Решение зависит от выбранного геморроя" © Snowy "у нас как в армии - либо работает, либо так и задумано" |
|||
|
||||
| Max_Rendel |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 24.2.2007 Где: г.Благовещенск Репутация: нет Всего: нет |
Exai1e, да размер замерял перед отправкой и после. Самое интересное, что всё в порядке...
Пробывал сохранять в TFileStream (на диск), его размер 0. Может что не так с отправкой и приёмом делаю?????? Может каким другим способом сделать???? Но без сохранения файла на диск! |
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 14 Всего: 128 |
1. какой компонент для UDP пользуется?
2.
что-то не совсем совместимо утверждение.... попробуй после CopyFrom перед загрузкой в jpg сделать Seek( 0, soFromBeginning ) Добавлено через 43 секунды что-то сомнение берет, что под буфером подразумевается TStream -------------------- There are always someone smarter than you... |
|||
|
||||
| Max_Rendel |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 24.2.2007 Где: г.Благовещенск Репутация: нет Всего: нет |
MetalFan,
1) Indy (кот. по умолчанию стоит в Delphi7) 2) не понял замечания???? Поподробней пожалуйста… 3)
Пробывал делать так после сохранения в стрим:
4) Тогда что???? |
||||
|
|||||
| ksili |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
Может между
и
надо сделать задержку? А-то оно ещё отправляется, а вы его сразу удаляете... -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
||||
|
|||||
| Max_Rendel |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 24.2.2007 Где: г.Благовещенск Репутация: нет Всего: нет |
ksili сделал, и не чего не поменялось.
Я уже немного изменил вид кода и избавился от JPG (пока не разберусь), вместо него отправляю маленький Bitmap. Вот как он выглядит:
Ошибка больше не вылетает, но Image всё равно не отображает картинку. Но пока всё без результатно... |
|||
|
||||
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
TM.Size в клиенте и в сервере одинаковый?
Добавлено через 34 секунды А это всё на одном компе происходит? -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
| Max_Rendel |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 24.2.2007 Где: г.Благовещенск Репутация: нет Всего: нет |
||||
|
||||
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
А проверял в TMemoryStream->Memory и AData именно байты твоей картинки после чтения? можно проверить несколько первых байт.
Может ещё попробовать использовать не метод UDPRead, а событие OnUDPRead? Добавлено @ 12:20 С потоками ещё вроде такой косяк, что нулевой байт считается концом потока (а в BMP это просто чёрный цвет). Так что может быть при загрузке
до конца не грузится из-за того, что встречается именно такой байт. Тогда надо будет грузить не так, а копируя блок памяти, например при помощи memcpy. Только не забудь тогда выделить вручную память под Image2.Picture.Bitmap. Это сообщение отредактировал(а) ksili - 12.5.2008, 12:31 -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
Кстати, до чтения картинки, размеры Image2 не нулевые случайно? Если так, то возможно придётся вручную выставлять размеры его канвы, а возможно и самого битмапа
-------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
| Max_Rendel |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 24.2.2007 Где: г.Благовещенск Репутация: нет Всего: нет |
||||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 14 Всего: 128 |
так там багов выше крыши. скачай и поставь по-свежее. Добавлено через 6 минут и 34 секунды ты говоришь, что выскакивает jpeg error, т.е. выполняется приведенная мной венка твоего кода но при сохранении в файл размер 0. значит не так сохраняешь. не знаю что там было в древних индейцах, но наверняка не TStream -------------------- There are always someone smarter than you... |
|||
|
||||
| Max_Rendel |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 24.2.2007 Где: г.Благовещенск Репутация: нет Всего: нет |
У кого не будь есть пример отправки по UDP файла без предварительного сохранения на диск???????
(в любой версии Indy, только укажите её) PLZ А товсем нечего не получается...... |
|||
|
||||
| Max_Rendel |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 24.2.2007 Где: г.Благовещенск Репутация: нет Всего: нет |
Ну вроде дела сдвинулись.
Но опять же с проблемами… Вот код:
Всё работает, но в этой программе и сервер и клиент находятся на одной форме, т.е. в одной программа. А когда я делаю отдельно сервер и клиент, те ничего не работает. На сервере выскакивает ошибка (Вот она http://ipicture.ru/uploads/080514/gxtqW9itSY.jpg), в тот момент когда я начинаю грузить принятые данные в Image2.
Замерял размер до отправки и после, всё OK. Проверял побайтно, всё OK. Что я не так делаю????? Это сообщение отредактировал(а) Max_Rendel - 14.5.2008, 12:48 |
||||
|
|||||
![]()
|
| Правила форума "Delphi: Сети" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Сети | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |