我使用Delphi 2006和Indy 10。我创建了一个窗体并放置了一个IdHttpServer组件。我为该窗体创建了一个OnCreate事件以使服务器处于活动状态,并在服务器的OnCommandGet中输入以下行:
procedure TForm3.IdHTTPServerCommandGet(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
Beep;
Sleep(10000);
AResponseInfo.ContentText := DateTimeToStr(Now);
end;
请注意等待10秒钟。
然后我使用两个浏览器在Firefox中进行测试。 我让第一个浏览器连接到“localhost”,然后立即听到嘟声。 然后我切换到第二个浏览器,并让它在不到10秒的时间内连接到localhost,但它不会立即响铃。 它等待第一个请求完成,然后响铃,并等待另外10秒。
我认为这些组件是多线程的? 是否有一些属性可以设置使其按照我想象的方式运行(两个请求都会立即得到回答)。