-
Постов
96 -
Зарегистрирован
-
Посещение
-
Победитель дней
1
Сообщения, опубликованные ra.eremeev
-
-
Друзья, спасибо!
Вот какой вопрос возник по теме: может ли работа iDHTTP и частое использование команды Bitmap.LoadFromUrl (uses FMX.Features.Bitmap.Helpers) восприниматься веб-сервером как DDOS-атака?
Именно так вебмауэр моего хостинг-провайдера реагирует на работу этих компонентов/команд.
После 200-300 обращений происходит блокирование моего IP.
В работе приложения активно используются графические изображения, подгружаемые с сервера через Bitmap.LoadFromUrl (приложение отображает список мероприятий, и для каждого мероприятия на сервере имеется свой небольшой графический файл-афиша размером 15-20 кБ).
Зацикливаний и пустой долбежки в коде нет.
Но блокировки есть.
Может, не те компоненты/решение выбрал.
Что посоветуете в такой ситуации?
-
Привет всем!
Имеется несколько устройств, используемых для отладки:
1. Samsung GT-I9082 - Android 4.2.2
2. Sony Ericsson XPERIA Neo (MT15i) - Android 4.0.4
3. Sony Ericsson XPERIA ArcS (LT18i) - Android 4.0.4
После сборки и запуска приложения из RAD Studio XE7 (Delphi):
На Samsung GT-I9082 - 14,45 МБ;
На Sony Ericsson XPERIA Neo - 47,95 МБ;
На Sony Ericsson XPERIA ArcS - 47,95 МБ.
Размер смотрел в устройствах в меню Настройки-Приложения...
Чем вызвана такая разница в объемах?
Разные способы подсчета?
Под более старые версии Андроид-систем требуется больше упаковать кода?
Под какое устройство производить итоговую компиляцию и сборку, если оборудование конечного потребителя неизвестно?
Какие есть подводные камни?
Поделитесь, пож-та, опытом...
-
Axbor, спасибо!
Т.е., загрузку файла (код, который предложен) запускать через поток?
Верно?
И еще вопрос: без потока приложение будет всегда зависать с этим кодом, или только при загрузке больших файлов или при слабом соединении?
-
krapotkin, http.get - iDHTTP.GET ?
Можно пример скачивания файла по HTTP?
-
krapotkin, спасибо!
Вот, что значит - пересидел!
Конечно, средствами SQL можно и получить ответ на вопрос ))
Надо переключаться чаще - и голова работать будет не в узком направлении поиска решения.
Спасибо!
-
-
Друзья, подскажите, пож-та
1. возможно ли изменить название скомпилированного под Android приложения?
По-умолчанию, оно такое же, как и название проекта.
Хотелось бы для наглядности отразить русское имя, которое с именем проекта не имеет ничего общего (например, вместо Project на экран под иконку выводить Файловый менеджер)...
2. как изменить имя директории приложения, в которую на устройстве оно устанавливается?
По-умолчанию, используется папка <com.embarcadero.{название проекта}>
Не нравится (чисто эстетически) приписка com.embarcadero
Подразумеваю, что возможно, но не нашел...
-
Спасибо за ответ!
Нет, не забыл
Но работает не стабильно - в некоторых случаях файл получается битым. А иногда и не грузится вовсе - приложение висит просто... Ошибок не выдает
Инет есть и на других устройствах он стабилен...
Подскажите, пож-та, как можно контролировать наличие соединения с Инетом?
-
Друзья, стоит задача по обмену служебными данными с WEB-сервера (файл базы данных) - можно через FTP, можно через HTTP.
Подскажите, пож-та, как обеспечить получение приложением файла из инета? Желательно с возможностью проверки целостности передачи...
Пробовал TiDFTP, но все время файлы битые получаются
-
СПАСИБО!
Помогли очень!
-
Добрый день!
Стоит аналогbчная задача по обмену служебными данными с WEB-сервера.
Подскажите, пож-та, как обеспечить получение приложением файла из инета? Желательно с возможностью проверки целостности передачи...
Пробовал TiDFTP, но все время файлы битые получаются
-
Друзья, помогите, пож-та!
Как можно подсчитать число записей после формирования выборки с использованием TFDQuery?
RecordCount выдает значение 50 (RowsetSize по-умолчанию).
Поделитесь, пож-та, примером кода и советом: как RowsetSize менять динамически исходя из объема выборки?
Спасибо!
-
ZuBy, спасибо очередной раз!
Все прекрасно работает
Обрати внимание, пож-та, в представленном тобой модуле необходимо скорректировать наименование в первой строке Unit...
-
Друзья, выручайте!
Уже на сутки "завис"...
Приложение под Android должно загружать картинки в TListViewItem (аватарки) с HTTP.
Ресурс доступен. Картинки на нем тоже.
Использую iDHTTP (iDHTTP тоже "кидал" на форму и создавал динамически - результат один) и TMemoryStream.
Код ниже.
Само приложение на устройстве выдает ошибку: Access violation at address 559E45CC accessing address 00000000
Отладчик выдает: class segmentation fault 11
Опытным путем установил, что ошибка, скорее всего, возникает при попытке заполнения TMemoryStream (пробовал TMemoryStream.LoadFromFile - то же самое, хотя приложением TListViewItem.BitMap.LoadFromFile с этим же файлом проходит на ура и все работает).
Во всех случаях используются PNG-картинки небольшого размера и разрешения: 20-25 кБ.
В коде адрес картинки указан тестовый осознанно (в приложение картинка по используемому адресу доступна).
Часть кода:
var item:TListViewItem; pic:TMemoryStream; idhttp1:tidhttp; ... idhttp1.Create(Application); pic:=TMemoryStream.Create; try IdHTTP.Get('http://site.ru/icons/icon.png, pic); try Item.Bitmap.LoadFromStream(pic); except end; finally pic.Free; IdHTTP1.Free; end;
Вопроса 2:
- Что я делаю не так?
- Подскажите, пож-та, хороший пример для выполнения такой задачи (желательно с применением потоков - чтобы приложение не висло на период загрузки данных из HTTP).
Спасибо большое!
-
ZuBy ОГРОМНОЕ СПАСИБО!!!
Все помогло!
-
один экран - одна форма??
зачем тогда использовать TTabControl
Мне кажется, это существенно упрощает разработку...
Вот пример того, что я описал (нашел в сети). Не могу понять, как сделать так, чтобы одна вкладка была на весь экран и переключение между вкладками происходило по нажатию на кнопки навигации вверху либо жестами скольжения вправо или влево.
У меня только получается, что все ярлыки вкладок программа размещает на одном экране.
-
ZuBy, спасибо огромное!
А по карточкам событий то же самое, но с вертикальной ориентацией?
И еще: как сделать так, чтобы вкладка TTabControl была на один экран?
А каждая последующая - занимала новый...
Т.е., переход по вкладкам осуществлялся последовательно справа-налево или в обратном порядке...
-
Добрый день!
Подскажите, пож-та, уже голову сломал...
Делаю приложение для отображения афиши мероприятий на Android.
В качества представления событий по датам хотел бы сделать линейку с датами, месяцем и днями недели.
Выбираешь соответствующую дату, ниже открывается соответствующий ей набор карточек мероприятий.
Предполагается, что линейку дат можно листать вправо и влево для отображения следующих/предыдущих (не представленных на экране дат).
Подразумеваю, что реализовать линейку можно на основе TabControl. Но как сделать - не знаю
К тому же, вопрос со шрифтами - они разные в дате, месяце и дне недели.
Может, есть другое решение?И вопрос не по теме ветки форума, но в тему обсуждения: подскажите, пож-та, на чем можно реализовать подобные карточки мероприятий? Сборная солянка компонентов на Layer, создаваемая динамически? Или...?
Буду очень признателен за помощь...
Прошу не ругать сильно если тема не нова: в FMX я новичок и на форуме подобных обсуждений не нашел
Загрузка файлов из интернета
в Решаемые задачи
Опубликовано
Сам отвечу на свой же вопрос: DDOS-атака идентифицируется благодаря Bitmap.LoadFromUrl (uses FMX.Features.Bitmap.Helpers).
В процедуре используется связка: инициализация idhttp и закрытие соединения (удаление) idhttp.
Множественные сессии и вызывают схожесть с DDOS...