Indy 10 has experimental support for fibers and IOCP:
From Indy knowledge base:
Indy 10 provides experimental support
for the Fiber and I/O Completion Ports
API in the Windows platforms. This
support is designed to aid in creating
more scalable servers where thousands
of simultaneous client connections are
required. For small- and medium-sized
projects, the traditional thread-based
servers are still available.
Fiber and IOCP APIs are supported only
for the Windows 2000, 2003, and XP
operating systems using Delphi version
7. Windows 95, 98, and ME are not supported. Delphi compilers prior to
version 7 are also unsupported due to
critical changes in the VCL since
those releases.
This is not installed by default, and I haven't used it myself, so I am not sure how much usable it is. I guess you need to download the latest SVN revision from their repository to use this experimental feature.
Using it must be straightforward; you create a IdTcpServer instance, and instead of the default scheduler, you use the scheduler class which provides IOCP support. The rest should be considered internal work of the provided scheduler class.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…