Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Connection reset by peer [D7, WinXP]


SamProf ©   (2006-08-12 20:02:00) 

Здравствуйте, Мастера!
Суть проблемы в следующем:
Я использовал Indy9, потом поствил 10 - всё равно не помогло!
Я юзаю TIdHttpServer
Всё красиво работет - только когда я много много раз в Експлорее нажимаю кнопку обновить - т.е. много запросов на сервак - прога вылетает с ошибкой
Connection reset by peer #10054
Что делать? я так понимаю, что если к моему сервку будет конектится много людей - он вылетит?


Ketmar   (2006-08-12 22:49:00) [1]

> [17] SamProf ©   (12.08.06 21:26)
если код работает -- то он работает всегда. а если он работает иногда -- то он не работает.
"свежесть бывает только одна -- первая, она же и последняя" (ц)


SamProf   (2006-08-12 21:26:00) [2]


> Ketmar ©   (12.08.06 21:14) [15]
> > [14] SamProf ©   (12.08.06 21:11)класс. "код красивый
> и чёткий, только не работает"."двигатель был очень похож
> на настоящий, но не работал" (ц)

Код РАБОТАЕТ!!!!!!!!!!!!!

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


Отец Кондратий   (2006-08-12 21:17:00) [3]

1) http://oszone.net/1355/- почитай
2) убери "красоту" из кода. Может заработает...


Ketmar   (2006-08-12 21:14:00) [4]

> [14] SamProf ©   (12.08.06 21:11)
класс. "код красивый и чёткий, только не работает".

"двигатель был очень похож на настоящий, но не работал" (ц)


SamProf   (2006-08-12 21:11:00) [5]

Код красивый и чёткий! все работает красиво! проблема возникает, когда много конектов!


Отец Кондратий   (2006-08-12 21:10:00) [6]

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


SamProf   (2006-08-12 21:06:00) [7]

В чистом виде - согласен работает!
Просто на самом деле код страницы генерится программой - достаточно трудоёмкий и времяёмкий процесс, т.е. страница грузится 3-4 сек!


Отец Кондратий   (2006-08-12 21:04:00) [8]

Смотри AResponseInfo.ContentStream:=TFileStream.Create а где и как потом он освобождается?


Отец Кондратий   (2006-08-12 20:59:00) [9]

Накидал наскоряк - у меня всё работает! :-)


Отец Кондратий   (2006-08-12 20:52:00) [10]

Попробуй ReuseSocket - rsTrue иначе и вправду кривой код...


Ketmar   (2006-08-12 20:45:00) [11]

> [5] Отец Кондратий   (12.08.06 20:31)
чего??? куда? кого? "бобёр, выдыхай!" (ц)


Ketmar   (2006-08-12 20:45:00) [12]

мой телепатор выдвигает три арианта:
а) превышен лимит соединений сервера;
б) кривой код;
в) a+б.
%-)


SamProf   (2006-08-12 20:38:00) [13]

Отец Кондратий   (12.08.06 20:31) [5]
В Windows XP существует ограничение 10 одновременных подключений...
Э.... это 10 подключений куда?

unit httpserverU;

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

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

VAR
    SamHTTPServer:  TSamHTTPServer;
implementation

uses Unit1;

destructor TSamHttpServer.Destroy;
begin
    inherited;
end;

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

constructor TSamHttpServer.Create;
begin
    inherited Create(AOwner);
    DefaultPort:=4444;
    AutoStartSession:=true;
    Active:=true;
    OnCommandGet:=_CommandGet;
end;

end.


Обрашаюсь к примеру к http://samprof:4444/index.htm
И много раз жму Обновить


Отец Кондратий   (2006-08-12 20:31:00) [14]

В Windows XP существует ограничение 10 одновременных подключений...


Отец Кондратий   (2006-08-12 20:29:00) [15]

LOL... Ну это я понял. К КАКОМУ КОМПУ (LAN,WLAN,DSL,MODEM), какими средствами и поподробнее, если хочешь получить исчерпывающий ответ - дай исчерпывающую инфо!


SamProf   (2006-08-12 20:28:00) [16]

чё то у меня мысль возникла.
А может при частом вызове обновить именно браузер, а не сервер прерывает конект и поэтому TIdHttpServer мне об этом говорит?


SamProf   (2006-08-12 20:24:00) [17]

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


Отец Кондратий   (2006-08-12 20:23:00) [18]

10054 - Удаленный хост принудительно разорвал существующее подключение.

Хотелось бы узнать к чему (кому) коннектимся?


Наверх

Титульная страница Поиск, карта сайта Написать письмо