Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail



Ответ
 
Опции темы
Старый 20.11.2017, 19:17   #11
LikanGT
Новичок
Пользователь
 
Регистрация: 19.11.2017
Сообщений: 18
Репутация: 10
По умолчанию

Цитата:
Сообщение от Aliens_wolfs Посмотреть сообщение
А сколько у вас файл для передачи весит?
При нажатии на ту кнопку, где я сделал отдельную отправку, программа крешится
LikanGT вне форума   Ответить с цитированием
Старый 20.11.2017, 19:22   #12
LikanGT
Новичок
Пользователь
 
Регистрация: 19.11.2017
Сообщений: 18
Репутация: 10
По умолчанию

Закомментировал строчку
Код:

//HTTP.Sock.OnStatus := HttpOnstatus;

Крешится перестала. Что за дела(
LikanGT вне форума   Ответить с цитированием
Старый 20.11.2017, 19:26   #13
Aliens_wolfs
Участник клуба
 
Регистрация: 16.12.2009
Адрес: WWW ЛЕНИНГРАД СПб точка ру
Сообщений: 789
Репутация: 355
По умолчанию

Что бы не заморачиваться с кодом если самый большой файл не превышает 200мг то зайдите в Delphi в меню Tools -> EditorOption в закладке General в UndoLimit поставьте значение примерно 200767 это ресурс памяти в Delphi.
И запустите свой старый проект, проблемы с памятью должны исчезнуть
Aliens_wolfs вне форума   Ответить с цитированием
Старый 20.11.2017, 19:27   #14
LikanGT
Новичок
Пользователь
 
Регистрация: 19.11.2017
Сообщений: 18
Репутация: 10
По умолчанию

Цитата:
Сообщение от Aliens_wolfs Посмотреть сообщение
Что бы не заморачиваться с кодом если самый большой файл не превышает 200мг то зайдите в Delphi в меню Tools -> EditorOption в закладке General в UndoLimit поставьте значение примерно 200767 это ресурс памяти в Delphi.
И запустите свой старый проект, проблемы с памятью должны исчезнуть
Надо бы, чтобы и гигабайт мог отправиться :-(
LikanGT вне форума   Ответить с цитированием
Старый 20.11.2017, 19:52   #15
Aliens_wolfs
Участник клуба
 
Регистрация: 16.12.2009
Адрес: WWW ЛЕНИНГРАД СПб точка ру
Сообщений: 789
Репутация: 355
По умолчанию

Увеличьте этот лимит до 2гб могут быть тормоза, т.к файл подкачки работать будет

Последний раз редактировалось Aliens_wolfs; 20.11.2017 в 20:00.
Aliens_wolfs вне форума   Ответить с цитированием
Старый 20.11.2017, 19:55   #16
LikanGT
Новичок
Пользователь
 
Регистрация: 19.11.2017
Сообщений: 18
Репутация: 10
По умолчанию

Цитата:
Сообщение от Aliens_wolfs Посмотреть сообщение
Увеличьте этот лими до 2гб
т.е это будет 2000000 в Undo Limit?
LikanGT вне форума   Ответить с цитированием
Старый 20.11.2017, 20:03   #17
LikanGT
Новичок
Пользователь
 
Регистрация: 19.11.2017
Сообщений: 18
Репутация: 10
По умолчанию

Цитата:
Сообщение от Aliens_wolfs Посмотреть сообщение
Увеличьте этот лимит до 2гб могут быть тормоза, т.к файл подкачки работать будет
Кстати, если отправляю таким образом
Код:

procedure ThreadSEND.Execute;
const
  CRLF = #13#10;
var
  HTTP: TidHTTP;
  Bound, Field: String;
  List: TStringStream;
  Log: TextFile;
  DataStr: tIdMultiPartFormDataStream;
begin
  List := TStringStream.Create;
  HTTP := TidHTTP.Create;
  DataStr := TidMultiPartFormDataStream.Create;
  HTTP.Request.Host := host;
  HTTP.Request.UserAgent := 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36';
  Bound := '-----' + IntToHex(Random(65535), 8) + '_boundary';
 HTTP.Request.ContentType := 'multipart/form-data; boundary=' + Bound;
  try
    try
      AssignFile(Log,'log'+name+'.txt');
      Rewrite(Log);
      DataStr.AddFile('video_file',fn,'video/mp4');
      HTTP.Post(url,DataStr,list);
      Writeln(Log,list.DataString);
      CloseFile(Log);
      if Pos('size',list.DataString)<>0 then
         Synchronize(Sync)
      else
        Synchronize(Async);
    except
      Synchronize(MemoryEXP);
      DataStr.Free;
      HTTP.Free;
      List.Free;
    end;
  finally
    Synchronize(Finality);
    Datastr.Free;
    HTTP.Free;
    List.Free;
  end;
end;

То отправляет и по 500 мб спокойно, но зато маленькие иногда не отправляет, как будто не хватает памяти, хотя видео весит по 10-15 мб. Получается так маленькие почти не грузит, а большие спокойно.
LikanGT вне форума   Ответить с цитированием
Старый 20.11.2017, 20:04   #18
LikanGT
Новичок
Пользователь
 
Регистрация: 19.11.2017
Сообщений: 18
Репутация: 10
По умолчанию

Причём ошибка идет из
except
Synchronize(MemoryEXP);
А не из
if Pos('size',list.DataString)<>0 then
Synchronize(Sync)
else
Synchronize(Async);
LikanGT вне форума   Ответить с цитированием
Старый 20.11.2017, 21:55   #19
Aliens_wolfs
Участник клуба
 
Регистрация: 16.12.2009
Адрес: WWW ЛЕНИНГРАД СПб точка ру
Сообщений: 789
Репутация: 355
По умолчанию

Цитата:
Причём ошибка идет из
except
Synchronize(MemoryEXP);
А не из
if Pos('size',list.DataString)<>0 then
Synchronize(Sync)
else
Synchronize(Async);
Ошибку ищите в функциях что у вас Synchronize

Почитай про TidHTTP интересное чтиво http://www.webdelphi.ru/2011/07/bibl...-httpsend-pas/
там в середине есть интересный пример, для отправки файлов

Из этого чтиво найди функцию по отправки procedure TForm8.btnSendClick(Sender: TObject);
Да и вообще много интересного в этом чтиве

Последний раз редактировалось Aliens_wolfs; 20.11.2017 в 23:25.
Aliens_wolfs вне форума   Ответить с цитированием
Старый 21.11.2017, 00:03   #20
LikanGT
Новичок
Пользователь
 
Регистрация: 19.11.2017
Сообщений: 18
Репутация: 10
По умолчанию

Цитата:
Сообщение от Aliens_wolfs Посмотреть сообщение
Ошибку ищите в функциях что у вас Synchronize

Почитай про TidHTTP интересное чтиво http://www.webdelphi.ru/2011/07/bibl...-httpsend-pas/
там в середине есть интересный пример, для отправки файлов

Из этого чтиво найди функцию по отправки procedure TForm8.btnSendClick(Sender: TObject);
Да и вообще много интересного в этом чтиве
Спасибо большое. А можете подсказать, возможно ли как-то отловить текст ошибки, произошедшей в потоке? А то отладить не получается без этого.
LikanGT вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi срочно помощь dasf51 Фриланс 8 07.09.2017 13:53
Срочно! Помощь с циклами в Delphi Raikerock Помощь студентам 3 14.09.2014 09:27
Нужна помощь с пакетной передачей anghela Помощь студентам 18 01.12.2013 13:08
ПРоблема с передачей и сохранением файлов с помощью indi компонентов albatros Работа с сетью в Delphi 4 18.02.2009 23:39
Нужна помощь с передачей даных в процедуру programer_tang Общие вопросы Delphi 5 28.08.2008 10:14




15:16.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru