可扩展的Delphi TCP服务器实现

Mis*_*sha 8 delphi

有关组件用作可扩展TCP服务器基础的任何建议吗?我目前有一个使用Indy的实现,它适用于100个相对活动的连接或1,000个相对不活动的连接,但每个连接模型的一个线程限制了可以处理的并发活动连接的数量.

假设我的目标可能是1,000个连接,每个连接每秒处理10个消息,或者10,000个连接,每个处理在一个好的服务器上每秒处理1个消息(8-16个核心).这是现实的吗?我真的很想听听任何实际的实现,因为我发现在理论上可能起作用的东西不一定在实践中起作用,我不想追逐一个不起作用的建议解决方案.

编辑: IOCP会很好,但我只想使用商业级的类/组件,所以在我想到使用它们之前,他们需要像Indy或IP*Works一样"专业".此外,我无意"滚动自己的"解决方案 - 它需要花费太多时间才能达到商业级别.最后,我正在寻找对我已有的重大改进.我相信我可以从我拥有的东西中获得至少20-50%(基于Indy),但无论我怎么努力,我都无法处理10,000个并发客户端或每秒10,000封邮件.是否存在满足这些条件的东西是另一回事.

我决定接受关于IOCP课程的答案,即使我没有使用它们,因为它们看起来像是现阶段调查的最佳途径.

mjn*_*mjn 3

http://voipobjects.com/上有一个项目,它基于以前的iopcclasses项目。

它声称可以处理数千个并发连接

IOCP 引擎是一组类、组件和例程,用于快速创建高可扩展性和高性能的 TCP/UDP 应用程序。使用 IOCP 类创建的应用程序可以处理数千个同时连接。

库是用 Delphi 编写的 - 支持 Delphi 7 - 2010。

库使用IO完成端口技术。Win32 世界中有最强大的技术可用于创建高度可扩展和高性能的 TCP/UDP 应用程序。除旧版 Win9x/WinME 版本外,所有桌面 Windows 操作系统均支持该技术。

该库已获得 MPL1.1 许可。它还包括来自 Jedi 项目的一些文件(Winsock2 标头翻译)。

https://bitbucket.org/voipobjects/iocpengine