Is there a I/O completion port based component for Delphi?
Asked Answered
B

8

8

I am aware of Indy, ICS, Synapse and Clever InetSuite, none of which support IOCP. Is there anything else out there?

Edit: I found iocpclasses , It's written in Delphi5. Better than nothing I suppose.

Barefoot answered 20/2, 2010 at 13:10 Comment(0)
O
6

Check http://voipobjects.com/index.php?page=delphi-iocp-library It is migrated iocpclasses.sourceforge.net (i'm an author). Enjoy :)

Update: voipobjects has not dedicated page for this library. It lives here https://bitbucket.org/voipobjects/iocpengine.

Update 2: bitbucket doesn't offer Mercurial anymore, so I moved to gitlab. https://gitlab.com/dmytro.bogovych/iocpengine

Ozzie answered 31/3, 2010 at 12:20 Comment(1)
The linked page is not available. Could you update your post, please ? Thanks! [+1]Gregoriagregorian
A
6

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.

Atropine answered 20/2, 2010 at 13:55 Comment(1)
Just to complete @Arnaud's question, no Indy does not have any IOCP capabilities.Gregoriagregorian
O
6

Check http://voipobjects.com/index.php?page=delphi-iocp-library It is migrated iocpclasses.sourceforge.net (i'm an author). Enjoy :)

Update: voipobjects has not dedicated page for this library. It lives here https://bitbucket.org/voipobjects/iocpengine.

Update 2: bitbucket doesn't offer Mercurial anymore, so I moved to gitlab. https://gitlab.com/dmytro.bogovych/iocpengine

Ozzie answered 31/3, 2010 at 12:20 Comment(1)
The linked page is not available. Could you update your post, please ? Thanks! [+1]Gregoriagregorian
B
5

Synopse mORMot and SynCrtSock and DWScript's HttpSys2WebServer both have an IOCP-based server.

Synopse actually has two servers using IOCP, one via http.sys another via sockets.

Beniamino answered 15/2, 2013 at 6:30 Comment(0)
C
4

Not a component but an example: TISAPIThreadPool in ISAPIThreadPool unit.

Colly answered 20/2, 2010 at 14:44 Comment(0)
H
4

Have a look at High performance socket server based on Windows Completion Port and with using Windows Socket Extensions. IPv6 supported. Link: http://www.torry.net/authorsmore.php?id=7131

Halmstad answered 21/2, 2010 at 7:11 Comment(0)
B
3

There is an IOCPPool example for Synapse availabile in the contributed files section.

Bottommost answered 22/2, 2010 at 18:13 Comment(0)
P
2

There is a project which is based on the former iopcclasses project.

It claims to handle thousands simultaneous connections:

IOCP engine is set of classes, components and routines for rapid creation high scalable and performance TCP/UDP applications. Application created using IOCP classes can handle thousands simultaneous connections.

Library is written in Delphi - Delphi 7 - 2010 are supported.

Library uses IO completion ports technology. There is most powerful technology in Win32 world for creation highly scalable and performance TCP/UDP applications. This technology is supported in all desktop Windows OSes except old Win9x/WinME versions.

This library is licensed under MPL1.1. Also It includes some files from Jedi project (Winsock2 header translation).

https://bitbucket.org/voipobjects/iocpengine

Perky answered 23/8, 2011 at 9:9 Comment(0)
S
1

iocp-delphi by Ondrej Kelle who is also the author of chakracore-delphi

Sinfonietta answered 30/4, 2020 at 13:58 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.