![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 09.01.2007
Сообщений: 10
|
![]()
Строил серверное и клиентское приложение на основе TIdHTTP и TIdHTTPServer. Обнаружил интересное явление. При каждом запросе слиентом сервера (при выполнении OnCommandGet в TIdHTTPServer) приложение отедает 4 байта памяти. При долгой работе сервера и большом кол-ве запросов приложение переполняет память и падает.
Что это может быть? Ошибка в компоненте и утечка памяти. Или где-то компонент сохраняет какие-то данные? |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
![]()
HTTP сессию небось постоянно открытой держите ? а вот зря.. закрывайте сессии и все будет нормально
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 09.01.2007
Сообщений: 10
|
![]() |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
![]()
IdHTTPServer1.EndSession(<имя сессии>);
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 09.01.2007
Сообщений: 10
|
![]() |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 09.01.2007
Сообщений: 10
|
![]()
У меня в программе только код:
procedure TFormUser.IdHTTPServer1CommandGet(A Context: TIdContext; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo); var i : integer; begin if ARequestInfo.Document = '/reguser.html' then begin i := REQOK; AResponseInfo.ContentStream := TMemoryStream.Create; AResponseInfo.ContentStream.Size := sizeof(integer); AResponseInfo.ContentLength := sizeof(integer); AResponseInfo.ContentStream.WriteBu ffer(i, sizeof(integer)); AResponseInfo.WriteHeader(); AResponseInfo.WriteContent(); end; AResponseInfo.ContentStream.Free; end; и всё. при этом на каждый запрос пропадает 4 байта |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
![]()
логично что пропадает AContext: TIdContext; остается тогда просто залезайте в AContext: TIdContext; и убивайте поток
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 09.01.2007
Сообщений: 10
|
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Непонятка с русским | Antidoc | Общие вопросы C/C++ | 1 | 11.08.2008 21:21 |
TidHTTPServer не многозадачный? | vitek123 | Работа с сетью в Delphi | 2 | 16.11.2007 08:32 |
Где ошибка? | jarded | Общие вопросы C/C++ | 2 | 01.06.2007 15:10 |
в чем ошибка? | Lonix | Общие вопросы Delphi | 2 | 24.03.2007 09:41 |