Connection reset by peer

Connection reset by peer

Привіт Майстри!
Суть проблеми в наступному:
Я використовував Indy9, потім постав 10 - все одно не допомогло!
Я юзаю TIdHttpServer
Все красиво работет - тільки коли я багато багато разів в Експлора натискаю кнопку оновити - тобто багато запитів на сервак - програма вилітає з помилкою
Connection reset by peer # 10054
Що робити? я так розумію, що якщо до мого сервку буде Конект багато людей - він вилетить?

10054 - Віддалений хост примусово розірвав існуюче підключення.

Хотілося б дізнатися до чого (кому) коннектимся?

Тобто Браузер конекттся до TIdHttpServer

че то у мене думка виникла.
А може при частому виклику оновити саме браузер, а не сервер перериває конект і тому TIdHttpServer мені про це говорить?

LOL. Ну це я зрозумів. ДО ЯКОГО комп (LAN, WLAN, DSL, MODEM), якими засобами і детальніше, якщо хочеш отримати вичерпну відповідь - дай вичерпну інфо!

У Windows XP існує обмеження 10 одночасних підключень.

батько Кіндрат # XA0; (12.08.06 20:31) [5]
У Windows XP існує обмеження 10 одночасних підключень.
Е. це 10 підключень куди?

interface
uses
# XA0; Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
# XA0; Dialogs, IdBaseComponent, IdComponent, IdTCPServer, IdCustomHTTPServer,
# XA0; IdHTTPServer. MaskUtils, Winsock, SyncObjs, IdContext;

type
TSamHTTPServer = class (TIdHTTPServer)
# XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; public
# XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; fname: String;
# XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; constructor Create (AOwner: TComponent);
# XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; destructor Destroy; override;
# XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; procedure _CommandGet (AContext: TIdContext;
# XA0; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
# XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; end;

VAR
# XA0; # XA0; SamHTTPServer: # XA0; TSamHTTPServer;
implementation

destructor TSamHttpServer.Destroy;
begin
# XA0; # XA0; inherited;
end;

procedure # XA0; TSamHttpServer._CommandGet;
begin
# XA0; # XA0;
# XA0; # XA0; if FileExists (ExtractFileDir (Application.ExeName) + ARequestInfo.Document) then
# XA0; # XA0; AResponseInfo.ContentStream: = TFileStream.Create (ExtractFileDir (Application.ExeNa me) + ARequestInfo.Document, fmOpenRead);
end;

constructor TSamHttpServer.Create;
begin
# XA0; # XA0; inherited Create (AOwner);
# XA0; # XA0; DefaultPort: = 4444;
# XA0; # XA0; AutoStartSession: = true;
# XA0; # XA0; Active: = true;
# XA0; # XA0; OnCommandGet: = _ CommandGet;
end;

мій телепатор висуває три Арианта:
а) перевищено ліміт з'єднань сервера;
б) кривої код;
в) a + б.
% -)

> [5] Батько Кіндрат # XA0; (12.08.06 20:31)
чого. куди? кого? "Бобер, видихай!" (Ц)

Спробуй ReuseSocket - rsTrue інакше і справді кривої код.

Накидав наскоряк - у мене все працює. -)

Дивись AResponseInfo.ContentStream: = TFileStream.Create а де і як потім він звільняється?

У чистому вигляді - згоден працює!
Просто насправді код сторінки генерується програмою - досить трудомісткий і времяёмкій процес, тобто сторінка вантажиться 3-4 сек!

Ну значитися однозначно - косяк в коді. Чи не полінуйся по F7 пройтися.

Код красивий і чіткий! все працює красиво! проблема виникає, коли багато Конект!

"Двигун був дуже схожий на справжній, але не працював" (ц)

А ну ка вставте в обробник procedure # XA0; TSamHttpServer._CommandGet;
Sleep (10000);
І запустіть і тисніть кнопку оновити # XA0; :-)))) ось токда оборжётесь!

Пам'ять: 0.75 MB
Час: 0.03 c