Delphi 7 Indy 9多线程HTTP服务器

IamIC

我需要编写一个多线程HTTP服务器。我知道Indy通过IdThreadMgrPool处理线程。

我的要求很简单:拥有一台服务器,该服务器可以接受多个并发客户端(Web浏览器POST请求),运行有限数量的调用Delphi DLL的线程(可能与连接线程分开),并返回结果。

无阻塞将是最终的选择(例如node.js)。

关于此主题有几篇SO帖子。我在这里(或通过Google)找不到的是如何使用IdThreadMgrPool的示例。我看到有帖子说必须使用它,但没有示例显示如何使用。在Indy的网站上也没有任何示例。

有人可以指出一个例子吗?还是有一个FOS框架对此适用?

一种想法是让Indy正常产生多个线程,然后让这些线程访问运行DLL的受控线程池。如果这是合理的话,那么我只需要知道“正常”案例用法示例即可。

向量

如果您有Windows服务器,我建议使用Delphi 7编写ISAPI DLL并将其部署在IIS上,这将处理所有服务器端问题,尤其是如果您具有带有IIS 7.5(或更高版本)的Server 2008 R2。您的客户端可以使用Indy连接到IIS,并且Indy客户端与Delphi ISAPI的请求/响应模型相结合,支持多种功能,可以轻松地将数据从客户端传递到服务器端请求处理程序,再传递回客户端。无需ASP.NET-所有本机Delphi和“经典” ISAPI应用程序模型。

Delphi 7将生成ISAPI应用程序代码-当IIS将请求发送到DLL时,您将获得一个动作编辑器来处理请求,该请求由客户端发送的URL决定。您可以保留会话信息,创建全局缓存,并且在ISAPI DLL的上下文中,基本上可以使用VCL的所有非可视方面。

IIS处理线程-可能处理的并发连接远远超出您的需要-并且还使您能够确定一次可以加载DLL的实例数量,以及许多其他选项,例如回收,各种形式的身份验证和安全级别。您可以使用IIS的应用程序池功能进行扩展等。

我已经使用这种体系结构开发了几种大型企业级解决方案(Delphi exe中嵌入了Indy客户端)。一旦掌握了Delphi的ISAPI应用程序模型的基础知识和IIS部署的缺陷,它就会变得稳定且相对“轻松”。

如果您有此选项,为什么还要重新发明轮子呢?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Delphi / Indy多线程服务器

来自分类Dev

Delphi Indy流Http服务器

来自分类Dev

Delphi 7 Indy 10 ioHandler

来自分类Dev

Delphi 7和Indy 9从TCPServer写入数据

来自分类Dev

Delphi 7和Indy 9从TCPServer写入数据

来自分类Dev

Delphi 7 Indy Web服务器显示AResponseInfo.PostStream

来自分类Dev

Delphi XE7 Android Indy IRC

来自分类Dev

Http Post Indy10 错误 Delphi 7:创建 SSL 上下文时出错

来自分类Dev

如何解决Delphi 2007服务器与RAD XE7客户端之间的Indy套接字错误#111连接被拒绝?

来自分类Dev

如何解决Indy套接字错误#111,Delphi 2007服务器与RAD XE7客户端之间的连接被拒绝?

来自分类Dev

Delphi XE 7 Indy IRC检测到连接丢失

来自分类Dev

Delphi XE 7 Indy IRC检测到连接丢失

来自分类Dev

Delphi7 Indy HTTPServer无法获取表单参数

来自分类Dev

如何使Indy服务器和客户端在C ++中的单独线程上侦听数据而不是在Delphi中

来自分类Dev

Delphi Indy IdMappedPortTCP

来自分类Dev

Delphi Indy SSL 参数

来自分类Dev

带 indy 的 Delphi 流程

来自分类Dev

delphi indy udp客户端和服务器音频聊天

来自分类Dev

Delphi Indy HTTPS从Web服务器检测到最新文件

来自分类Dev

Delphi:从Indy9到Indy10的迁移:使用IdCustomHTTPServer和IdHTTPServer

来自分类Dev

带有Delphi的Indy 9:如何启用TLS 1.0?

来自分类Dev

使用Delphi的Indy 9:如何启用TLS 1.0?

来自分类Dev

如何设置未读消息?从indy10使用delphi 7和imap

来自分类Dev

Indy 10.6.0.5169 + OpenSSL 1.0.2u + Delphi XE7,握手错误

来自分类Dev

Delphi w Indy 10:无法通过TLS 1.2 w Web服务器上的SSL“最佳实践”进行连接

来自分类Dev

Delphi-使用Indy检查客户端状态的简单TCP客户端/服务器

来自分类Dev

Delphi-使用Indy检查客户端状态的简单TCP客户端/服务器

来自分类Dev

Delphi w Indy 10:idHTTPRequest POST始终是HTTP 1.0,如何使它成为HTTP 1.1?

来自分类Dev

使用Indy HTTP的Delphi Google oauth2令牌请求获得400错误请求

Related 相关文章

  1. 1

    Delphi / Indy多线程服务器

  2. 2

    Delphi Indy流Http服务器

  3. 3

    Delphi 7 Indy 10 ioHandler

  4. 4

    Delphi 7和Indy 9从TCPServer写入数据

  5. 5

    Delphi 7和Indy 9从TCPServer写入数据

  6. 6

    Delphi 7 Indy Web服务器显示AResponseInfo.PostStream

  7. 7

    Delphi XE7 Android Indy IRC

  8. 8

    Http Post Indy10 错误 Delphi 7:创建 SSL 上下文时出错

  9. 9

    如何解决Delphi 2007服务器与RAD XE7客户端之间的Indy套接字错误#111连接被拒绝?

  10. 10

    如何解决Indy套接字错误#111,Delphi 2007服务器与RAD XE7客户端之间的连接被拒绝?

  11. 11

    Delphi XE 7 Indy IRC检测到连接丢失

  12. 12

    Delphi XE 7 Indy IRC检测到连接丢失

  13. 13

    Delphi7 Indy HTTPServer无法获取表单参数

  14. 14

    如何使Indy服务器和客户端在C ++中的单独线程上侦听数据而不是在Delphi中

  15. 15

    Delphi Indy IdMappedPortTCP

  16. 16

    Delphi Indy SSL 参数

  17. 17

    带 indy 的 Delphi 流程

  18. 18

    delphi indy udp客户端和服务器音频聊天

  19. 19

    Delphi Indy HTTPS从Web服务器检测到最新文件

  20. 20

    Delphi:从Indy9到Indy10的迁移:使用IdCustomHTTPServer和IdHTTPServer

  21. 21

    带有Delphi的Indy 9:如何启用TLS 1.0?

  22. 22

    使用Delphi的Indy 9:如何启用TLS 1.0?

  23. 23

    如何设置未读消息?从indy10使用delphi 7和imap

  24. 24

    Indy 10.6.0.5169 + OpenSSL 1.0.2u + Delphi XE7,握手错误

  25. 25

    Delphi w Indy 10:无法通过TLS 1.2 w Web服务器上的SSL“最佳实践”进行连接

  26. 26

    Delphi-使用Indy检查客户端状态的简单TCP客户端/服务器

  27. 27

    Delphi-使用Indy检查客户端状态的简单TCP客户端/服务器

  28. 28

    Delphi w Indy 10:idHTTPRequest POST始终是HTTP 1.0,如何使它成为HTTP 1.1?

  29. 29

    使用Indy HTTP的Delphi Google oauth2令牌请求获得400错误请求

热门标签

归档