我知道Indy、ICS、Synapse和Clever InetSuite,它们都不支持IOCP。外面还有别的吗?
编辑:我找到了 iocpclasses,它是用 Delphi5 编写的。我想总比没有好。
我知道Indy、ICS、Synapse和Clever InetSuite,它们都不支持IOCP。外面还有别的吗?
编辑:我找到了 iocpclasses,它是用 Delphi5 编写的。我想总比没有好。
Indy 10 对光纤和 IOCP 有实验性支持:
来自印地知识库:
Indy 10 为 Windows 平台中的光纤和 I/O 完成端口 API 提供实验性支持。此支持旨在帮助创建需要数千个同时客户端连接的更具可扩展性的服务器。对于中小型项目,传统的基于线程的服务器仍然可用。
只有使用 Delphi 版本 7 的 Windows 2000、2003 和 XP 操作系统支持 Fiber 和 IOCP API。不支持 Windows 95、98 和 ME。版本 7 之前的 Delphi 编译器也不受支持,因为自这些版本以来 VCL 发生了重大变化。
这个是默认不安装的,我自己也没用过,所以不知道有多大用处。我想您需要从他们的存储库下载最新的 SVN 修订版才能使用此实验性功能。
使用它必须简单明了;您创建一个 IdTcpServer 实例,而不是默认调度程序,您使用提供 IOCP 支持的调度程序类。其余的应该被认为是提供的调度程序类的内部工作。
检查http://voipobjects.com/index.php?page=delphi-iocp-library 它是迁移的 iocpclasses.sourceforge.net (我是作者)。享受 :)
更新:voipobjects 没有此库的专用页面。它住在这里https://bitbucket.org/voipobjects/iocpengine。
更新 2:bitbucket 不再提供 Mercurial,所以我搬到了 gitlab。 https://gitlab.com/dmytro.bogovych/iocpengine
概要 mORMot 和 SynCrtSock 以及 DWScript 的 HttpSys2WebServer 都有一个基于 IOCP 的服务器。
Synopse 实际上有两台使用 IOCP 的服务器,一台通过 http.sys,另一台通过套接字。
不是组件而是示例:ISAPIThreadPool 单元中的 TISAPIThreadPool。
查看基于 Windows 完成端口和使用 Windows 套接字扩展的高性能套接字服务器。支持 IPv6。 链接:http ://www.torry.net/authorsmore.php?id=7131
在贡献的文件部分有一个 Synapse 可用的 IOCPPool 示例。
有一个基于前 iopcclasses 项目的项目。
它声称可以处理数千个同时连接:
IOCP 引擎是一组用于快速创建高可扩展性和高性能 TCP/UDP 应用程序的类、组件和例程。使用 IOCP 类创建的应用程序可以处理数千个同时连接。
库是用 Delphi 编写的 - 支持 Delphi 7 - 2010。
库使用 IO 完成端口技术。Win32 世界中有最强大的技术可用于创建高度可扩展和高性能的 TCP/UDP 应用程序。除旧的 Win9x/WinME 版本外,所有桌面 Windows 操作系统都支持此技术。
该库在 MPL1.1 下获得许可。它还包括来自 Jedi 项目的一些文件(Winsock2 头文件翻译)。
iocp-delphi由 Ondrej Kelle 撰写,他也是 chakracore-delphi 的作者