我使用的是 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 进行测试,使用 2 个浏览器。我有第一个连接到“本地主机”,我马上听到哔哔声。然后我切换到第二个浏览器,并让它连接到 localhost(不到 10 秒),但它不会立即发出哔哔声。它等待第一个请求完成,然后发出哔声,再等待 10 秒。
我以为这些组件是多线程的?是否有一些属性我可以设置以使其按照我认为的方式运行(两个请求都会立即得到答复)。