![]() |
|
Модераторы: Snowy, Poseidon, MetalFan |
![]()
|
|
| Misha_White |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 25.4.2007 Где: Кодинск Репутация: нет Всего: 1 |
Snowy,
Я написал
Но после приема стрима, прога не выходит из цикла, а начинает с начала приема данных (хотя с сервера ничего не отправлялось)и, считывая DispSize , выдает ошибки... Это сообщение отредактировал(а) Misha_White - 16.5.2007, 12:32 --------------------
Я не волшебник... я только учусь... |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Принимай не DispSize, а 4096!
У тебя мимо буфера выливается |
|||
|
||||
| Misha_White |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 25.4.2007 Где: Кодинск Репутация: нет Всего: 1 |
Snowy,
Could not convert variant of type (Null) into (Int64)... Добавлено через 41 секунду Заругался клиент --------------------
Я не волшебник... я только учусь... |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
В каком месте?
Поменяй условие цикла на > Пиши в стрим только, если err > 0 |
|||
|
||||
| Misha_White |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 25.4.2007 Где: Кодинск Репутация: нет Всего: 1 |
Snowy,
Дело в том, что стрим записывается полностью, и картинка появляется, но процедура пытается еще считывать данные из сокета, а Reciv у нас уже False, поэтому она пытается принять размер стрима... и так раза 4-5... потом только приходит новая картинка... походу... Добавлено через 57 секунд Snowy, Я Аську поставил... --------------------
Я не волшебник... я только учусь... |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Это просто потому, что картинка шла несколькими частями.
А сокет у тебя асинхронный. Вот и накопилась очередь сообщений о приходе данных. О отрабатывает она только по выходу из обработчика. Сразу выходи из обработчика, если в буфере пусто. |
|||
|
||||
| Misha_White |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 25.4.2007 Где: Кодинск Репутация: нет Всего: 1 |
Snowy,
Каким Макаром? Добавлено через 7 минут и 18 секунд Snowy, Выйти из обработчика? --------------------
Я не волшебник... я только учусь... |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Exit
|
|||
|
||||
| Misha_White |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 25.4.2007 Где: Кодинск Репутация: нет Всего: 1 |
Snowy,
Из обработчика... дело походу в том, что продолжает поступать сообщение NETEVENT_MSG... Вот... Поэтому процедура повторно(раз5-8) вызывается... --------------------
Я не волшебник... я только учусь... |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Разумеется вызывается.
Я даже написал почему. А будет картинка большего размера - будет больше вызываться. В самом начале обработчика вставь проверку на наличие данных в буфере. Если данных 0, то сразу делай Exit; |
|||
|
||||
| Misha_White |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 25.4.2007 Где: Кодинск Репутация: нет Всего: 1 |
Snowy,
Сделал подругому!
но почему-то ругается при второй попытке... в строке
Т.е., когда принимаем вторую картинку... Принимается вроде как надо(размеры совпадают)... а при попытке загрузить в Image рагается, блин Не могу понять почему... Это сообщение отредактировал(а) Misha_White - 17.5.2007, 09:32 --------------------
Я не волшебник... я только учусь... |
||||
|
|||||
| Misha_White |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 25.4.2007 Где: Кодинск Репутация: нет Всего: 1 |
Snowy,
--------------------
Я не волшебник... я только учусь... |
|||
|
||||
| Misha_White |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 25.4.2007 Где: Кодинск Репутация: нет Всего: 1 |
Snowy,
Есть идеи, почему так? --------------------
Я не волшебник... я только учусь... |
|||
|
||||
| Misha_White |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 25.4.2007 Где: Кодинск Репутация: нет Всего: 1 |
Misha_White,
Такой вопрос: почему передавать нужно S[1]? что это значит? --------------------
Я не волшебник... я только учусь... |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
s[1] - первый символ.
Это и есть начало буфера, поскольку сам стринг - указатель, а передать нужно буфер, а не указатель на него. |
|||
|
||||
![]()
|
| Правила форума "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. |