Indy 10 TIdHttpServer缺少MaxConnectionReply属性

时间:2013-04-06 00:53:36

标签: delphi indy indy10

我正在使用Indy10并使用派生自 TIdHttpServer 的类创建了一个Web服务器。在我的子类中,我覆盖了 DoMaxConnectionsExceeded 方法。当超过 MaxConnections 时,这似乎正在触发。

在早期的Indy版本中,至少根据Remy Lebeau的评论hereMaxConnectionReply上有 TIdHttpServer 属性。如果超出MaxConnections,则可以使用此选项创建自定义消息。 Indy 10似乎不是这样。

Indy10是否可以在超出MaxConnections时创建自定义消息?

1 个答案:

答案 0 :(得分:1)

正如我在您链接的主题中所述,MaxConnectionReplyTIdCmdTCPServer实施,而TIdHTTPServer并非来自DoMaxConnectionsExceeded()。由于您要覆盖procedure TMyHttpServer.DoMaxConnectionsExceeded(AIOHandler: TIdIOHandler); var Html: TIdBytes; begin Html := ToBytes('<html><body>500 - Too many connections</body></html>'); AIOHandler.WriteLn('HTTP/1.0 500 Too many connections'); AIOHandler.WriteLn('Content-Type: text/html'); AIOHandler.WriteLn('Content-Length: ' + IntToStr(Html)); AIOHandler.WriteLn('Connection: close'); AIOHandler.WriteLn; AIOHandler.Write(Html); end; ,因此您必须手动将自己的回复发送到客户端,并确保它是正确的HTTP格式,例如:

{{1}}