【发布时间】:2011-01-19 02:59:30
【问题描述】:
我知道Indy、ICS、Synapse 和Clever InetSuite,它们都不支持IOCP。还有其他的吗?
编辑: 我找到了iocpclasses ,它是用Delphi5写的。我想总比没有好。
【问题讨论】:
我知道Indy、ICS、Synapse 和Clever InetSuite,它们都不支持IOCP。还有其他的吗?
编辑: 我找到了iocpclasses ,它是用Delphi5写的。我想总比没有好。
【问题讨论】:
Indy 10 对光纤和 IOCP 具有实验性支持:
Indy 10 提供实验性支持 用于光纤和 I/O 完成端口 Windows 平台中的 API。这 支持旨在帮助创建 更具可扩展性的服务器,其中数千 同时的客户端连接数是 必需的。对于中小型企业 项目中,传统的基于线程的 服务器仍然可用。
仅支持光纤和 IOCP API 适用于 Windows 2000、2003 和 XP 使用 Delphi 版本的操作系统 7. 不支持 Windows 95、98 和 ME。之前的 Delphi 编译器 版本 7 也不受支持,因为 自 VCL 发生重大变化 那些版本。
这个是默认不安装的,我自己也没用过,所以不知道有多大用处。我想您需要从他们的存储库下载最新的 SVN 修订版才能使用此实验性功能。
使用必须直截了当;您创建一个 IdTcpServer 实例,而不是默认调度程序,您使用提供 IOCP 支持的调度程序类。其余的应该被视为提供的调度程序类的内部工作。
【讨论】:
不是组件,而是示例:ISAPIThreadPool 单元中的 TISAPIThreadPool。
【讨论】:
看看 基于 Windows 完成端口并使用 Windows 套接字扩展的高性能套接字服务器。支持 IPv6。 链接:http://www.torry.net/authorsmore.php?id=7131
【讨论】:
contributed files 部分中有一个 Synapse 可用的 IOCPPool 示例。
【讨论】:
检查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
【讨论】:
有一个项目是基于以前的 iopcclasses 项目。
它声称可以处理数千个同时连接:
IOCP 引擎是一组类、组件和例程,用于快速 创建高可扩展性和高性能的 TCP/UDP 应用程序。 使用 IOCP 类创建的应用程序可以处理数千个 同时连接。
库是用 Delphi 编写的 - 支持 Delphi 7 - 2010。
库使用 IO 完成端口技术。有最强大的 Win32 世界中用于创建高度可扩展性和性能的技术 TCP/UDP 应用程序。所有桌面都支持此技术 Windows 操作系统,旧 Win9x/WinME 版本除外。
此库在 MPL1.1 下获得许可。它还包括一些文件 来自 Jedi 项目(Winsock2 标头翻译)。
【讨论】:
Synopse mORMot and SynCrtSock 和 DWScript's HttpSys2WebServer 两者都有基于 IOCP 的服务器。
Synopse 实际上有两台使用 IOCP 的服务器,一台通过 http.sys,另一台通过套接字。
【讨论】:
iocp-delphi by Ondrej Kelle,他也是 chakracore-delphi 的作者
【讨论】: