|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
09.01.2007, 13:58 | #1 |
Пользователь
Регистрация: 09.01.2007
Сообщений: 10
|
Непонятка или ошибка TIdHTTPServer
Строил серверное и клиентское приложение на основе TIdHTTP и TIdHTTPServer. Обнаружил интересное явление. При каждом запросе слиентом сервера (при выполнении OnCommandGet в TIdHTTPServer) приложение отедает 4 байта памяти. При долгой работе сервера и большом кол-ве запросов приложение переполняет память и падает.
Что это может быть? Ошибка в компоненте и утечка памяти. Или где-то компонент сохраняет какие-то данные? |
09.01.2007, 14:39 | #2 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
HTTP сессию небось постоянно открытой держите ? а вот зря.. закрывайте сессии и все будет нормально
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
09.01.2007, 14:42 | #3 |
Пользователь
Регистрация: 09.01.2007
Сообщений: 10
|
|
09.01.2007, 14:50 | #4 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
IdHTTPServer1.EndSession(<имя сессии>);
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
09.01.2007, 15:14 | #5 |
Пользователь
Регистрация: 09.01.2007
Сообщений: 10
|
|
09.01.2007, 15:24 | #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 байта |
09.01.2007, 16:06 | #7 |
Старожил
Регистрация: 13.12.2006
Сообщений: 3,859
|
логично что пропадает AContext: TIdContext; остается тогда просто залезайте в AContext: TIdContext; и убивайте поток
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи |
09.01.2007, 16:15 | #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 |